7

我有一个使用“publish_actions”权限登录 Facebook 的代码。这是片段:

NSArray *facebookPermissions = [NSArray arrayWithObjects:@"publish_actions", nil];

[FBSession openActiveSessionWithPublishPermissions:[self facebookPermissions]
                                   defaultAudience:FBSessionDefaultAudienceFriends
                                      allowLoginUI:YES
                                 completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
    NSLog(@">>> Permissions available: %@", FBSession.activeSession.permissions);
}];

执行该方法时,用户将被重定向到 Mobile Safari Facebook 页面并询问是否允许 facebook 访问他/她的帐户。

屏幕1:

APPNAME would like to access your public profile and friend list.
[CANCEL] [OK]

按下 OK 后,由于我们使用 openActiveSessionWithPublishPermissions 方法,将出现第二个页面,询问是否允许 facebook 代表您发布内容。

屏幕 2:

APPNAME would like to post to your friends on your behalf.
[AUDIENCE] [SKIP] [OK]

棘手的部分是,当用户单击 SKIP 按钮时,回调中的日志仍然'publish_actions'列为可用权限之一。这是不正确的。error也为零。如何正确检测到这一点?

这是日志:

2013-07-06 16:35:59.037 FbSandbox[56213:c07] >>> Permissions available: ("publish_actions")

提前致谢!

4

1 回答 1

3

您可以通过调用 来验证接受的权限me/permissions。这将列出用户允许的权限。将此列表与您要求的权限交叉引用,您将能够找出哪些被接受,哪些被跳过。

于 2013-08-05T19:07:05.403 回答