首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >javascript获取google+用户头像

javascript获取google+用户头像
EN

Stack Overflow用户
提问于 2012-12-06 18:56:28
回答 3查看 2.9K关注 0票数 3

stackoverflow‘’ers!因此,我现在的工作就是围绕社交网络开展工作。我已经登录了facebook,google和twitter。现在我需要检索用户头像。网站是非常动态的,几乎所有的东西都是通过javascript和ajax来工作的。我已经成功获得facebook用户头像。当用户有头像时,返回头像,当用户没有头像时,返回facebook的默认头像。现在我在google+和twitter上工作。我找到了一个很好的网址,在那里我可以从google-plus获取头像:

代码语言:javascript
复制
    https://plus.google.com/s2/photos/profile/{oauth_id}?sz=100

我将oauth_id存储在会话中,它是可访问的。当用户设置了头像时,一切都很正常。问题是,当用户的头像没有设置时,链接会返回404错误。如何在jquery或仅在javascript中确定该链接是否返回404错误?对于未来的一些工作,我认为twitter也有同样的问题。或者你可以提供一些更好的选项来实现这一点。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-07 00:58:12

另一种方法是请求plus.me作用域,对用户进行身份验证,然后检索他们的配置文件,如果他们有化身,则会设置图像值。我在这里创建了一个实时演示:http://wheresgus.com/profile.html,它显示了使用Google+公共数据API检索配置文件。

要为您的项目设置内容,请转到Google APIs控制台- https://code.google.com/apis/console/并创建一个启用了Google+ API的项目。您将需要Google API控制台的API Access部分中的web应用程序的客户端ID。

相关代码如下:

代码语言:javascript
复制
<html>
  <head>
    <script src="https://apis.google.com/js/plusone.js"></script>
    <script type="text/javascript">
    function onSignin(e){
      accessToken = e.access_token;
      var xhr = new XMLHttpRequest();
      xhr.open('GET', "https://www.googleapis.com/plus/v1/people/me/");
      xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
      xhr.send();

      xhr.onreadystatechange = function(){
        if (this.readyState == 4){
          var myProfile = JSON.parse(xhr.responseText);
          alert(myProfile.image.url);
        }
      }
    }
    </script>      
  </head>
  <body>
    <g:plus action="connect" clientid="YOUR CLIENT ID" scope="https://www.googleapis.com/auth/plus.me" callback="onSignin">
    </g:plus>
  </body>
</html>

使用此代码创建一个HTML文件,并将您的客户机ID替换为您在Google API控制台中创建的凭证。当您单击“登录”按钮时,客户端将为您提供用户的URL。

票数 4
EN

Stack Overflow用户

发布于 2012-12-06 19:36:57

如果您使用的是jquery.ajax()或jquery.get()方法(或类似方法),则应该能够检查作为回调的一部分返回的jqXHR对象。它有一个" status“字段,其中包含HTTP调用的状态代码。

请参阅http://api.jquery.com/jQuery.ajax/下的 jqXHR Object一节

票数 0
EN

Stack Overflow用户

发布于 2016-01-04 02:24:41

我试着处理上面的建议,但发现下面的方法是合适的。我使用jquery get来获取图像url。以下是代码片段。

代码语言:javascript
复制
function getImageURL(_gplusid) {
                $.get("https://www.googleapis.com/plus/v1/people/"+_gplusid+"?fields=image"+"&key="+googlepluskey,
                function (data) {
                    console.log(data);
                });
        }

附注:_gplusid是用户的google plus id,googlepluskey是你的google认证密钥。输出是一个包含图像url的json对象。您需要通过google api控制台启用google plus api访问。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13742113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档