如何从测试用户那里检索 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 获取封面照片
Facebook SDK iOS - 用户照片不会在发布版本中检索,但在调试版本中可以完美运行。 [关闭]