いくつかのコンテキスト:ユーザーは以前にアプリをインストールし、FBを承認し、すべてがうまく機能し、その後(facebook.comを介して)FBパスワードを変更し、アプリを削除し、再インストールしてから初めて実行しています再インストールします。
私は呼び出し[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler]
てallowLoginUI: YES
おり、読み取り権限は「email、user_about_me、user_birthday、user_interests、user_location」です。
FBSessionState
私が入っているのはcompletionHandler
ですFBSessionStateClosedLoginFailed
。エラーの NSLog は次のとおりです。
Error Domain=com.facebook.sdk Code=2 "The operation could not be completed. (com.facebook.sdk error 2.)" UserInfo=0x1cd68c00 {com.facebook.sdk:ErrorLoginFailedReason=com.facebook.sdk:ErrorLoginFailedReason . UserInfo=0x1cd5b970 {NSLocalizedDescription=Facebook サーバーはこのアクセス要求を実行できませんでした: アクセス トークンの検証中にエラーが発生しました: ユーザーがパスワードを変更したため、セッションは無効になりました。}}
その内部エラー ドメインはACErrorDomain
、エラー コードACErrorPermissionDenied
です。では、ユーザーにアプリを再認証させるにはどうすればよいでしょうか?
もう一度呼び出してみopenActiveSessionWithReadPermissions
ましたが、同じエラーが出力され続けます。私も試し[FBSession.activeSession closeAndClearTokenInformation]
ましたが、それは何もしないようです (おそらく がないためactiveSession
)。