如何从测试用户那里检索Facebook照片?

时间:2016-03-30 09:31:49

标签: facebook facebook-graph-api

我创建了可以将用户照片添加到我的网站的Facebook应用

我创建了app并设置了网站并检查了user_photos的权限

我在测试用户标签

中使用了在角色左侧窗格中创建的测试用户

我登录此用户并上传照片并将其设置为公开

并获取我的应用访问令牌

但是当我按如下方式发送请求时:

https://graph.facebook.com/TestUserID/photos?access_token=#########|#########

回应是:  “message”:“请求此资源需要用户访问令牌。”,  “type”:“OAuthException”,  “代码”:102

那我怎么解决这个问题?

1 个答案:

答案 0 :(得分:0)

您正在为请求使用App Access令牌。

要获取用户的私人数据(例如用户的图片),您必须实施Facebook Login Flow

这意味着,用户需要:

  1. 使用Facebook登录您的应用
  2. 授予您的应用访问照片的权限
  3. 用户登录后,您将获得用户访问令牌,您可以使用该功能代表用户向Facebook的API发出请求。

    检查上面的链接,了解获取访问令牌的更多说明。

    执行登录(在前端)的最简单代码是:

     window.fbAsyncInit = function() {
      FB.init({
        appId      : '{your-app-id}',
        cookie     : true,  // enable cookies to allow the server to access 
                            // the session
        xfbml      : true,  // parse social plugins on this page
        version    : 'v2.5' // use graph api version 2.5
      });
    
      FB.login(function(response) {
          console.log(response.authResponse.accessToken); // This will output the user access token
      }, {scope: 'public_profile, user_photos'});
    }
    

    请记住将Facebook JS SDK包含在您的页面中。