12

有没有办法找到使用他/她的谷歌帐户(通过 OpenID)登录的用户的个人资料图片。

我检查了 stackoverflow,似乎他们正在使用 gravatar 服务为电子邮件地址分配头像。但应该可以直接从谷歌获取用户谷歌个人资料图片。

任何线索?

4

4 回答 4

12

单独使用 OpenId 是不可能的。你有两个解决方案:

  • 你用的不是谷歌图片图片,而是Gravatar等第三方提供的图片(最简单的方式,Stackoverflow用的就是这个);

  • 您使用Google Apps Profiles API:查看那里以检索照片。在这种情况下,必须对用户进行身份验证,例如使用Oauth协议:请参阅那里的Google 文档。如果你选择这个方案,我想你会继续使用 OpenId,所以你会同时使用 OpenId 和 Oauth。Google 支持一种混合协议来简化此过程:混合协议 OpenId+OAuth

希望能帮助到你...

于 2011-03-04T21:40:32.927 回答
12

更新:目前,这种方法不起作用

我目前正在使用这种方法:

  1. 尝试加载http://profiles.google.com/s2/photos/profile/me?sz=32 (sz 是图像大小)
  2. 如果加载失败,请使用虚拟谷歌图标
  3. 我还注意到,如果在显示头像后我使用另一个谷歌帐户登录,头像图像仍然是旧的。为避免这种情况,我将 "&cache_fix=" 添加到图像 url。

    $(".social_avatar")
        .load(function() { $(".social_avatar").css('visibility', 'visible'); })
        .error(function() { $(".social_avatar").attr('src', "/dummy_google_icon.png"); })
        .css('visibility', 'hidden')
        .attr("src", "http://profiles.google.com/s2/photos/profile/me?sz=32&cache_fix=<userid>");
    
于 2012-10-23T16:49:44.417 回答
1

编辑:这将不再起作用,因为 Google Buzz 已停产 ,我将答案保留在这里仅用于历史目的。

https://www.googleapis.com/buzz/v1/people/[your google account name]/@self

生成一个 XML 文件。然后,您可以获取 <thumbnailUrl> 标记的内容,该标记又是配置文件缩略图 url。

请注意,用户必须登录才能使用。

希望这可以帮助

于 2011-03-03T17:24:55.277 回答
0

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

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

此 API 的好处之一是它不需要用户通过 Google 进行身份验证,但是在您的情况下,您说用户已经登录,因此这可能不适用于您。

于 2016-07-31T11:15:34.763 回答