有没有办法找到使用他/她的谷歌帐户(通过 OpenID)登录的用户的个人资料图片。
我检查了 stackoverflow,似乎他们正在使用 gravatar 服务为电子邮件地址分配头像。但应该可以直接从谷歌获取用户谷歌个人资料图片。
任何线索?
单独使用 OpenId 是不可能的。你有两个解决方案:
你用的不是谷歌图片图片,而是Gravatar等第三方提供的图片(最简单的方式,Stackoverflow用的就是这个);
您使用Google Apps Profiles API:查看那里以检索照片。在这种情况下,必须对用户进行身份验证,例如使用Oauth协议:请参阅那里的Google 文档。如果你选择这个方案,我想你会继续使用 OpenId,所以你会同时使用 OpenId 和 Oauth。Google 支持一种混合协议来简化此过程:混合协议 OpenId+OAuth。
希望能帮助到你...
更新:目前,这种方法不起作用
我目前正在使用这种方法:
我还注意到,如果在显示头像后我使用另一个谷歌帐户登录,头像图像仍然是旧的。为避免这种情况,我将 "&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>");
编辑:这将不再起作用,因为 Google Buzz 已停产 ,我将答案保留在这里仅用于历史目的。
https://www.googleapis.com/buzz/v1/people/[your google account name]/@self
生成一个 XML 文件。然后,您可以获取 <thumbnailUrl> 标记的内容,该标记又是配置文件缩略图 url。
请注意,用户必须登录才能使用。
希望这可以帮助
http://www.avatarapi.com/提供了一个 API,它根据 Google 的公开信息从电子邮件地址返回用户的姓名和个人资料图片。
可以在此 API 端点通过 SOAP 或 HTTP 调用它: http ://www.avatarapi.com/avatar.asmx
此 API 的好处之一是它不需要用户通过 Google 进行身份验证,但是在您的情况下,您说用户已经登录,因此这可能不适用于您。