2013-07-06 27 views
7

我有一个代码以'publish_actions'权限登录Facebook。 这里的片段:Facebook iOS SDK:请求publish_actions时如何处理SKIP按钮?

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); 
}]; 

当执行该方法,用户将被重定向到移动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] 

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

这是日志:

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

提前感谢!

回答

3

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

+0

这似乎是答案。绝对可怕的API设计。 –

相关问题