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好友列表
在 Facebook-Ios-Sdk 中关闭 Facebook 会话