2016-11-23 1612 views
0

自从发布新的FBSDK后,我面临着这个问题。Facebook登录后拒绝登录权限

方案:经由FBLogin

1.用户登录到我的应用程序
2.用户下降我的权限

一个
  • 我的应用程序设置他回到第一屏幕(我不允许创建一个帐户,但不提供信息)
  • 他试图再次登录
  • 他意识到FBSDK保存了他的se他无法改变。
  • 我该如何为用户提供改变它的可能性? 我的应用程序运行到了这一点,我注意到拒绝的权限,我给我的用户一个通知来更改设置。 但我在这一点上无能为力。

    回答

    2

    首先,您不得将所有权限设置为从Facebook强制执行。 虽然如果需要的话可以,那么你可以检查授予的许可或不使用下面的代码

    if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) { 
        // TODO: publish content. 
    } else { 
        FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
        [loginManager logInWithPublishPermissions:@[@"publish_actions"] 
             fromViewController:self 
                handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
        //TODO: process error or result. 
        }]; 
    } 
    

    要检查拒绝权限

    FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
        [loginManager logInWithPublishPermissions:@[@"publish_actions"] 
             fromViewController:self 
                handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) { 
        if ([result.declinedPermissions containsObject:@”publish_actions”]) { 
        // TODO: do not request permissions again immediately. Consider providing a NUX 
        // describing why the app want this permission. 
        } else { 
        // ... 
        } 
        }]; 
    

    注意:如果用户拒绝权限,不应该立即再次要求他们。相反,您的应用应该继续运作。您可以考虑提供指导或用户界面,解释授予该权限的好处,但只有在用户执行需要的操作时才再次请求。

    编号: https://developers.facebook.com/docs/facebook-login/ios/permissions https://developers.facebook.com/docs/ios/errors

    +0

    这些其实都是我曾经做过直到现在的步骤。我的问题是处理'流程错误'(你的第一个问题)。有没有办法强制用户提供信息?如果是这样的话:我如何编程重置登录? – JVS