检查用户是否已修改Facebook的App权限

Jay*_*iyk 7 facebook facebook-graph-api ios parse-platform swift

Facebook用来创建一个新用户或登录到Parse.

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

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

我想知道我们检查用户是否已更改Facebook中应用程序的授权状态的方式是什么.

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

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

IE:用户进入Facebook应用程序设置并从列表中删除应用程序.

ps:请帮忙推荐这个问题,因为很难找到解决方案.谢谢!!

谢谢

Edd*_*Liu 3

处理无效会话

在我们尝试向 API 发出请求之前,我们无法知道缓存的 Facebook 会话是否有效。如果用户更改密码或撤销应用程序的权限,会话可能会失效。发生这种情况时,用户需要注销。我们可以识别 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);
        }
    }];
Run Code Online (Sandbox Code Playgroud)

来源:将登录与 Facebook 集成