【问题标题】:Checking If User has Modified Facebook Permission For App检查用户是否修改了应用程序的 Facebook 权限
【发布时间】:2015-09-30 22:09:04
【问题描述】:

我正在使用Facebook 创建新用户或登录Parse

  1. 用户使用 Facebook 登录方式登录应用
  2. 提示用户接受权限。
  3. 用户接受应用请求的所有权限。

4.用户删除了应用权限(从 Facebook 删除应用)

我想知道我们如何检查用户是否更改了 Facebook 中应用的授权状态。

如何检查?我们怎么知道它不再连接?

FBSDKAccessToken.currentAccessToken(); 不做这项工作,因为它只能检查令牌是否存在于设备中。

IE:用户转到 Facebook 应用设置并从列表中删除了该应用。

p.s.:请帮助投票这个问题,因为很难找到解决方案。谢谢!!

谢谢

【问题讨论】:

    标签: ios facebook swift facebook-graph-api parse-platform


    【解决方案1】:

    处理无效的会话

    我们无法知道缓存的 Facebook 会话是否有效,直到我们 尝试向 API 发出请求。会话可能会失效 如果用户更改密码或撤销应用程序的 特权。发生这种情况时,用户需要注销。我们可以 识别 FBSDKGraphRequest 中的无效会话错误 完成处理程序并自动将用户注销。

    FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil];
        [request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
            if (!error) {
                // handle successful response
            } else if ([[error userInfo][@"error"][@"type"] isEqualToString: @"OAuthException"]) { // Since the request failed, we can check if it was due to an invalid session
                NSLog(@"The facebook session was invalidated");
                [PFFacebookUtils unlinkUserInBackground:[PFUser currentUser]];
            } else {
                NSLog(@"Some other error: %@", error);
            }
        }];
    

    来源:Integrate Login with Facebook

    【讨论】:

    • 你会不会碰巧知道 swift3 的更新代码?
    【解决方案2】:

    我想你可以在这里找到你想要的答案:

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

    你可以:

    1) 自己检查错误:

    let token = FBSDKAccessToken.currentAccessToken()
    if token.hasGranted("publish_actions") //Or whatever other permission you're checking
    

    2) 还是执行一些操作并检查错误:

    if error.userInfo[FBSDKGraphRequestErrorGraphErrorCode] == 200
    {
        //Handle missing permissions here
    }
    

    我猜currentAccessToken 将是他们上次登录时的缓存信息,所以第二个选项可能是要走的路。

    【讨论】:

      【解决方案3】:

      您可以为您的应用配置一个取消授权回调 URL。因此,您需要创建一个后端服务,该服务可以在用户取消您的应用授权后处理来自 Facebook 的传入 HTTP POST 请求。

      了解详情。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-02
        • 1970-01-01
        • 1970-01-01
        • 2014-04-28
        • 1970-01-01
        相关资源
        最近更新 更多