当用户使用Google的OpenID提供商登录时,查找Google个人资料图片网址

All*_*rgi 12 openid gravatar avatar

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

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

任何线索?

oli*_*sle 12

仅使用OpenId是不可能的.你有两个解决方案:

  • 您不使用Google图片图片,而是使用Gravatar等第三方提供的图片(这是最简单的方式,也是Stackoverflow使用的图片);

  • 您使用Google Apps配置文件API:查看此处以检索照片.在这种情况下,必须对用户进行身份验证,例如使用Oauth协议:请参阅那里的 Google文档.如果您选择此解决方案,我认为您将继续使用OpenId,因此您将同时使用OpenId和Oauth.Google支持混合协议来简化此过程:混合协议OpenId + OAuth.

希望能帮助到你...


use*_*976 12

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

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

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

    $(".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>");
    
    Run Code Online (Sandbox Code Playgroud)

  • 我用多个帐户测试了它. (2认同)