【问题标题】:How to fetch user's profile photo from Google (and not from Google+)?如何从 Google(而不是 Google+)获取用户的个人资料照片?
【发布时间】:2016-07-12 14:55:21
【问题描述】:

使用Google+ api,我可以获取有关用户个人资料的所有信息,我这样做的方式是通过在以下地址上调用GET

https://www.googleapis.com/plus/v1/people/11812536713708...432
?key=AIzaSyC_bs...gds353le

我在这里输入用户个人资料 ID(用户的谷歌 ID)和我的 api 密钥。

现在有两种情况:

1) 用户之前设置了一个 google+ 个人资料,然后我得到一个包含所有必要数据(例如他的个人资料照片、姓名等)的 json 文件

2) 用户之前没有设置 google+ 个人资料,然后我得到的 json 文件如下:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "notFound",
    "message": "Not Found"
   }
  ],
  "code": 404,
  "message": "Not Found"
 }
}

因此,在用户目前没有 google+ 帐户的情况下,我无法获取他的照片。有没有办法遵守它并以某种方式从 google+ 中获取他的个人资料详细信息?

在我的 ios 应用程序中,我使用了 google 登录功能,它们提供了为登录用户获取数据的可能性(这里有一些详细信息 https://developers.google.com/identity/sign-in/ios/people#retrieving_user_information )以及当我使用它并登录到我的应用程序时没有激活 google+ 的帐户,我仍然能够获取该用户的姓名、照片等。它不是来自 google+,在这种情况下它来自 GIDGoogleUser 对象。但是只有当用户向我提供他的用户名和密码时,我才能构造这个对象。

那么有没有办法通过提供谷歌用户 ID 和 API 密钥从任何谷歌 API 获取数据?

【问题讨论】:

    标签: ios google-api google-plus google-signin googlesigninapi


    【解决方案1】:

    尝试使用:

    https://www.googleapis.com/userinfo/v2/me
    

    您可以使用API Explorer 对此进行测试。至少,您的 OAuth 令牌需要 profile 范围。

    【讨论】:

    • 它在 API Explorer 中工作,但是当我将此地址粘贴到浏览器窗口中(并包括 ?key=MYAPIKEY)时,我得到了 error 401。这里有什么问题?
    【解决方案2】:

    http://www.avatarapi.com/ 提供了一个 API,它根据 Google 的公开信息返回用户的姓名和个人资料图片。

    可以在这个 API 端点通过 SOAP 或 HTTP 调用它: http://www.avatarapi.com/avatar.asmx

    此 API 的一个好处是它不需要用户通过 Google 进行身份验证,因此这可以解决用户没有 Google+ 帐户的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-08-06
      相关资源
      最近更新 更多