我想使用Facebook PHP SDK创建一个PHP应用程序,该应用程序从用户墙中提取用户帖子并将其显示为用户主页上的提要。根据{{3}} https://graph.facebook.com/{user-id}/feed
,我应该要求:
然而,API文档说:
您的应用需要获得创建该应用的人
user_posts
的许可 邮寄或帖子中标记的人。
我还没弄明白如何让用户授予此权限,目前还有以下请求
https://graph.facebook.com/userid/feed?access_token=123|abc-def&limit=4&locale=en
导致错误404(正如人们所料)。
有很多(过时的)教程有关如何创建应用程序以从Facebook提取用户Feed,但没有一个教程告诉您如何获得拥有该Feed的用户的users_posts
权限。看起来你之前并不需要这个,但Facebook最近加强了他们的隐私保护,旧的方式不再有用。
用户如何授予我的应用users_posts
权限?
(我正在使用我自己的用户对此进行测试,因此这不是要诱使用户授予权限 - 而是关于如何对应用进行编码以便用户实际可以这样做。)
答案 0 :(得分:2)
我建议使用JS SDK进行登录,因为它更容易。例如,这是您使用user_posts权限授权用户的方式:
FB.login(function(response) {
if (response.authResponse) {
//user just authorized your app
console.log(response);
}
}, {scope: 'user_posts', return_scopes: true});
之后,您可以使用它来获取帖子:
FB.api('/me/feed', {limit: 4}, function(response) {
console.log(response);
});
来源:http://www.devils-heaven.com/facebook-javascript-sdk-login/
如果您想使用PHP SDK登录,请阅读:https://developers.facebook.com/docs/php/howto/example_facebook_login
文档中的相关部分:
$permissions = ['user_posts'];
$loginUrl = $helper->getLoginUrl('https://example.com/fb-callback.php', $permissions);