iOS用FacebookSDKについての簡単な質問。ユーザーがアプリに拡張権限へのアクセスを許可する機能を実装しようとしています。
ユーザーが拡張アクセス許可リクエストを受け入れるとコードは正常に機能しますが(ユーザーがリダイレクトされるFacebook iOSアプリから)、ユーザーがアクセス許可を受け入れていないか、[キャンセル]をクリックしてアプリに戻ったときを検出できません。その後、アプリに戻ります。
[キャンセル]をクリックしてマルチタスクをアプリに戻すと、ログに記録されず、画面に何も表示されません。再度認証しようとすると、FacebookSDKは例外をスローします。
FBSession:前の再承認呼び出しがまだ完了していないときに再承認することは無効です。
例外をキャッチすることはできますが、ユーザーが再承認を再試行できるようにするために前の呼び出しを停止する方法がわからないため、それでも役に立ちません。
現在使用しているコードは次のとおりです。
@try {
[[FBSession activeSession] reauthorizeWithPermissions:[self requiredPermissions]
behavior:FBSessionLoginBehaviorWithFallbackToWebView
completionHandler:^(FBSession *session, NSError *error) {
if (!error) {
[self fetchUserPermissionsWithCompletionHandler:^(BOOL extendedGranted) {
if (extendedGranted) {
[self setCanPostToActivityStream:YES];
}
}];
}
else {
NSLog(@"%@", [error localizedDescription]);
}
}];
}
@catch (NSException *exception) {
NSLog(@"%@", exception);
}
さて、問題は上記のコードではありません-コードは正常に機能します。繰り返しになりますが、私が抱えている問題は、ユーザーが権限を許可した後にアプリに正常に戻らない場合に、以前の再承認呼び出しをキャンセルすることです。Facebook SDKは、そのままではアプリにこの状況を警告していないようです。