1

我在用着

(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被调用。

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

4

1 回答 1

3

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

于 2013-08-23T19:52:49.017 回答