检查用户是否修改了应用程序的Facebook权限
我正在使用Facebook
创建一个新用户或登录Parse 。
4.用户删除了应用程序的权限(从Facebook删除应用程序)
我想知道如何检查用户是否已更改Facebook中应用程序的授权状态。
我如何检查它? 我们如何知道它不再连接?
FBSDKAccessToken.currentAccessToken();
不能完成这项工作,因为它只能检查令牌是否存在于设备中。
IE:用户转到Facebook应用程序设置并从列表中删除应用程序。
ps:请帮助把这个问题投票,因为它很难找到解决方案。 谢谢!!
谢谢
处理无效的会话
我们无法知道缓存的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);
}
}];
来源:将登录与Facebook集成
我想你可以在这里找到你要找的答案:
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
将会是上次登录时的缓存信息,所以第二个选项可能是最好的选择。
您可以为您的应用配置取消授权回拨URL。 因此,您需要创建一个后端服务,该服务可以在用户取消授权您的应用程序后处理来自Facebook的传入HTTP POST请求。
看到
了解详情。
链接地址: http://www.djcxy.com/p/27483.html上一篇: Checking If User has Modified Facebook Permission For App
下一篇: How do I download and replace an AppGroup container using XCode 6.4