В некотором контексте: пользователь ранее установил приложение, авторизованный FB, все отлично поработало, затем они изменили свой пароль FB (через facebook.com), удалили приложение и теперь переустановили его и запускают его для первого снова после переустановки.
Я вызываю [FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler]
с allowLoginUI: YES
, а права на чтение - "email, user_about_me, user_birthday, user_interests, user_location".
FBSessionState
Я получаю в completionHandler
is FBSessionStateClosedLoginFailed
. NSLog ошибки:
Ошибка домена = com.facebook.sdk Код = 2 "Операция не может быть завершена (ошибка com.facebook.sdk 2.)" UserInfo = 0x1cd68c00 {com.facebook.sdk: ErrorLoginFailedReason = com.facebook.sdk: ErrorLoginFailedReason, com.facebook.sdk: ErrorInnerErrorKey = Ошибка домена = com.apple.accounts Код = 7 "Сервер Facebook не смог выполнить этот запрос доступа: Ошибка проверки маркера доступа: сеанс был недействительным, поскольку пользователь сменил пароль." UserInfo = 0x1cd5b970 {NSLocalizedDescription = сервер Facebook не смог выполнить этот запрос доступа: ошибка проверки маркера доступа: сеанс был недействительным, поскольку пользователь изменил пароль.}}
Этот внутренний домен ошибки ACErrorDomain
и код ошибки ACErrorPermissionDenied
. Итак, как я могу позволить пользователю повторно авторизировать приложение?
Я снова попробовал вызов openActiveSessionWithReadPermissions
, но он просто выводит ту же ошибку. Я также пробовал [FBSession.activeSession closeAndClearTokenInformation]
, но это ничего не делает (предположительно потому, что нет activeSession
).