如何从Google(而非Google+)获取用户的个人资料照片?

时间:2016-03-24 21:06:19

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

使用Google+ api我可以获取有关用户个人资料的所有信息以及我执行此操作的方式是通过拨打以下地址的GET

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

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

现在有两种情况:

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

2)用户之前没有设置谷歌+个人资料,然后我按照以下方式获取json文件:

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

因此,在用户目前没有Google +帐户的情况下,我无法取回他的照片。有没有办法服从它,并以某种方式获取他的个人资料详细信息不是来自谷歌+?

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

有没有办法通过提供Google用户ID和API密钥从任何Google Api获取数据?

2 个答案:

答案 0 :(得分:0)

尝试使用:

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

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

答案 1 :(得分:0)

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

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

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