我正在使用以下代码(Facebook SDK 3.1.1)来确定用户是否已授予我的应用 Facebook 权限。我发现当 Facebook 凭据输入到 iOS 6 设置应用程序但为我的应用程序关闭时,会调用以下回调两次,首先是使用FBSessionStateClosed
,然后是使用FBSessionStateOpen
. 当没有系统范围的凭据的用户已经通过 OAuth 检索到令牌时,这也是我收到的同一组回调,因此我不确定如何区分这两种情况。
[FBSession openActiveSessionWithReadPermissions:nil allowLoginUI:YES completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (status == FBSessionStateOpen) {
// Handle access
} else if (status == FBSessionStateClosedLoginFailed) {
[FBSession.activeSession closeAndClearTokenInformation];
// Handle no access
}
}];