获取 Facebook 时间线

Getting Facebook timeline

我正在从 Facebook 获取我的时间线并且我能够成功获取我的时间线但是当我使用我朋友的 Facebook 帐户登录时我收到以下错误 -

{
  "error": {
    "message": "(#200) Requires extended permission: read_stream", 
    "type": "OAuthException", 
    "code": 200
  }
}

我是 Facebook 开发者应用程序的管理员,但我的朋友不是。 我已经批准了来自 Facebook 的以下权限(见随附的屏幕截图)

下面是我在代码中使用的权限-

FBSession* sess = [[FBSession alloc] initWithPermissions:[NSArray arrayWithObjects:@"public_profile",@"user_friends",@"user_birthday",@"email",@"user_education_history",@"user_work_history",@"user_hometown",@"read_stream",@"user_about_me",@"user_posts",@"publish_actions",nil]];

这是获取时间线的代码-

 NSString *urlStringFacebook = [NSString stringWithFormat:@"https://graph.facebook.com/me/home?format=json&&access_token=%@&&limit=90",[[FBSession activeSession] accessTokenData]];

如果我将 read_stream 权限提交给 Facebbok 审核,由于以下原因被拒绝(见下面的屏幕截图)-

还有一件事,当我使用我的帐户登录时,他们要求我允许新闻源 (read_stream) 权限,但是当我的朋友登录时,他们不要求该权限。

当我尝试在 Graph API 资源管理器中获取相同内容时,数据正常。 请让我知道我在整个过程中遗漏了什么。 谢谢

您可以使用 user_posts.

获取主页时间轴 post

使用/me/feed你可以得到别人和你的所有post。转到 Developer graph API Explorer Graph API Explorer.

您正在尝试使用 /me/home,这需要 read_stream,您可以在文档中阅读:https://developers.facebook.com/docs/graph-api/reference/user/home

...并且该权限不会获得批准:https://developers.facebook.com/docs/facebook-login/permissions/v2.3#reference-read_stream

改用/me/posts/me/feed,这些端点需要user_posts并且您已经获得了该权限https://developers.facebook.com/docs/graph-api/reference/v2.3/user/feed

顺便说一句,这在变更日志中解释得很好:https://developers.facebook.com/docs/apps/changelog#v2_3_new_features

使用 /me/feed 而不是 /me/home,在已经授予 user_posts 权限的情况下,这应该可行。此端点还 returns 用户时间线中的其他帖子,而不仅仅是来自用户本人的帖子 (/me/posts)...