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

Posted

技术标签:

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

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

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

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

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

并获取我的应用访问令牌

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

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

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

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

【问题讨论】:

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

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

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

这意味着,用户需要:

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

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

以上是关于如何从测试用户那里检索 Facebook 照片?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Facebook + Swift + Parse 获取封面照片

在 iOS 中检索 facebook 封面照片

Facebook SDK iOS - 用户照片不会在发布版本中检索,但在调试版本中可以完美运行。 [关闭]

如何通过 ContactsContracts API 从用户那里获取 facebook id?

如何检索facebook用户™s好友列表

如何在应用程序获得批准之前测试 Facebook 集成(检索用户的好友列表)?