拒绝权限后登录 Facebook

Posted

技术标签:

【中文标题】拒绝权限后登录 Facebook【英文标题】:Facebook Login after declined Permission 【发布时间】:2016-11-23 18:18:29 【问题描述】:

自从新的 FBSDK 发布以来,我就遇到了这个问题。

场景

1.用户通过FBLogin登录我的应用 2.用户拒绝我的一项权限

    我的应用程序将他设置回第一个屏幕(我不允许在不提供信息的情况下创建帐户) 他再次尝试登录 他意识到 FBSDK 保存了他无法更改的设置。

我如何为用户提供更改它的可能性? 我的应用程序运行到这一点,我注意到一个拒绝的权限,我给我的用户一个更改设置的通知。 但我现在不知道该怎么做。

【问题讨论】:

【参考方案1】:

首先,您不得将 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

【讨论】:

这些实际上是我到目前为止所做的步骤。我的问题是处理“过程错误”(你的第一个)。有没有办法强制用户提供信息?如果是这样:如何编程重置登录?

以上是关于拒绝权限后登录 Facebook的主要内容,如果未能解决你的问题,请参考以下文章

坑向: 关于对Oracle数据库新建用户后,进行角色授予GRANT “CONNECT“, “RESOURCE“后,用户仍然没有指定角色的相关权限,致拒绝登录ORA-01045问题的探究

我用WINSCP连接SFTP服务器(linux),连接成功后,这时我修改了文件夹的权限,再次连接提示“密钥拒绝”?

客户端登录提示 :拒绝访问Temp目录解决方法

Firebase 实时数据库规则被拒绝权限

添加到SQLAgentReaderRole角色后报拒绝SELECT权限

登录不了高德地图显示访问被拒绝使用代理权限