次のコード(Facebook SDK 3.1.1)を使用して、ユーザーがアプリにFacebook権限を付与しているかどうかを確認しています。FacebookのクレデンシャルがiOS6設定アプリに入力されたが、アプリケーションでオフにされた場合、次のコールバックが2回呼び出され、最初はで、次にはで呼び出されることがわかりましFBSessionStateClosed
たFBSessionStateOpen
。これは、システム全体の資格情報を持たないユーザーがすでにOAuthを介して取得したトークンを持っている場合に受け取るコールバックのセットと同じであるため、これら2つのシナリオを区別する方法がわかりません。
[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
}
}];