FBSDKLoginBehaviorWeb显示两次(一次用于读取权限,然后一次用于发布权限)

时间:2018-06-25 23:06:34

标签: ios facebook fbsdk

我遇到的FBSDKLoginManager for iOS问题。

基本上,我需要同时要求阅读和发布权限(user_photos,publish_actions,user_likes,user_friends,电子邮件),我知道我必须分别询问他们。到目前为止一切顺利。

问题是,我正在使用FBSDKLoginBehaviorWeb,这在我的应用程序上是必需的(因为在交互完成后,我需要用户自动注销),因此当我请求阅读权限时,我会弹出窗口,成功登录,完成后,我要求发布权限,然后再次从该弹出窗口中登录。如果没有要求用户连续两次登录,是否有任何方法可以解决此问题?

这是我正在使用的代码:

NSArray *permissions = @ [@"user_photos",
@"user_likes",
@"user_friends",
@"email"];

_loginManager = [[FBSDKLoginManager alloc] init];
_loginManager.loginBehavior = FBSDKLoginBehaviorWeb;

[_loginManager logInWithReadPermissions:permissions fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

    if(result.isCancelled) {
    [self pressedCancel];
    return;
    }

    NSSet* declinedPermissions = result.declinedPermissions;
    for (NSString *declinedPermission in declinedPermissions) {

    if(!nullOrEmpty(declinedPermission))
    {
    [self pressedCancel];
    return;
    }
    }
    if ([FBSDKAccessToken currentAccessToken]) {
        // self.settings.facebookToken = [FBSDKAccessToken currentAccessToken].tokenString;

        [_loginManager logInWithPublishPermissions:@ [@"publish_actions"] fromViewController:self handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {

            [self didSignIn];

        }];
    }

}];

任何有关如何解决此问题的提示,或在何处可以获得帮助的指示,将不胜感激。

谢谢!

0 个答案:

没有答案