我在用着
(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
. 我没有看到此版本与初始权限请求(例如openActiveSessionWithReadPermissions...
)相结合。
我希望,对于随后的登录,权限已经通过session.permissions
但在测试中为 null 直到requestNewReadPermissions
被调用。
是否可以从任一或两个场景(第一个用户登录,后续用户登录)中删除双跳,但仍然获得相同的权限?