Facebook iOS SDK - 打开会话并请求读取权限

Posted

技术标签:

【中文标题】Facebook iOS SDK - 打开会话并请求读取权限【英文标题】:Facebook iOS SDK - open session and request read permissions 【发布时间】:2013-08-23 17:27:53 【问题描述】:

我正在使用

(void)openWithBehavior:(FBSessionLoginBehavior)behavior completionHandler:(FBSessionStateHandler)handler

打开我的会话,效果很好。打开后,我获得了我的读取权限:

(void)requestNewReadPermissions:(NSArray*)readPermissions completionHandler:(FBSessionRequestPermissionResultHandler)handler

这很好用,但是对于通过 Mobile Safari(或者可能是 Facebook ios 应用程序,尚未测试)登录的用户,用户会来回跳转两次(在我的应用程序中点击登录,跳转到 Mobile Safari,登录在那里,跳回我的应用程序,跳回 Mobile Safari,批准权限,跳回我的应用程序。

回访用户 - 那些退出我的应用程序(并移除令牌)的用户,也会获得双跳 - 每次 Mobile Safari 告诉用户他们已经批准了该应用程序。

我使用 openWithBehavior 是因为我使用 FBSessionLoginBehaviorUseSystemAccountIfPresent 优先考虑本机 iOS 登录。我没有看到此版本与初始权限请求(例如 openActiveSessionWithReadPermissions...)相结合。

我希望,对于后续登录,权限已经通过 session.permissions 获知,但在测试中该值为 null,直到调用 requestNewReadPermissions

是否可以从其中一种或两种情况(第一个用户登录,后续用户登录)中删除双跳,但仍然获得相同的权限?

【问题讨论】:

【参考方案1】:

您可以通过调用 initWithPermissions: 方法“初始化”具有读取权限的会话。然后调用 openWithBehavior:completionHandler: 它将仅使用您已设置的权限进行 1 次打开调用。

【讨论】:

完美!我在标题中错过了这一点。谢谢!

以上是关于Facebook iOS SDK - 打开会话并请求读取权限的主要内容,如果未能解决你的问题,请参考以下文章

iOS Facebook SDK 4 会话

为啥在ios中重新打开会话后无法访问facebook好友列表

在 Facebook-Ios-Sdk 中关闭 Facebook 会话

Facebook android SDK重新打开会话

在 iOS 上使用带有 UIActivityViewController 的 Facebook SDK 会话对象

通过 FB SDK for iOS 将视频分享到 facebook