【问题标题】:how to retrive facebook photos from test user?如何从测试用户那里检索 Facebook 照片?
【发布时间】:2016-03-30 09:31:48
【问题描述】:

我创建了 facebook 应用程序,可以将用户照片上传到我的网站

我创建了应用程序并设置了网站并检查了 user_photos 的权限

我使用了在测试用户选项卡的角色左窗格中创建的测试用户

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

并获取我的应用访问令牌

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

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

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

那么我该如何解决这个问题呢?

【问题讨论】:

  • 通过登录流程发送测试用户获取用户访问令牌。 (如果可能的话,以后请尝试一些使用标点符号。没有句号或逗号的无休止的句子很难阅读......)
  • 你的意思是我不会使用应用访问令牌?但我会使用用户访问令牌
  • “需要用户访问令牌”——没有比这更清楚的了。

标签: facebook facebook-graph-api


【解决方案1】:

您正在为请求使用应用访问令牌。

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

这意味着,用户需要:

  1. 使用 Facebook 登录您的应用程序
  2. 授予您的应用访问照片的权限

您的用户登录后,您将获得一个用户访问令牌,您可以使用该令牌代表用户向 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 包含到您的页面中。

【讨论】:

  • 当我使用测试用户登录并获取访问令牌时,我尝试使用 Graph API Explorer 并选择照片,但测试用户生成时响应为空,我为他设置了一些照片
  • @user5740661 您能否通过Access Token Debugger 确认您的访问令牌在Scopes 部分中列出了user_photos
猜你喜欢
  • 1970-01-01
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-16
  • 1970-01-01
相关资源
最近更新 更多