Ошибка com.facebook.sdk 2 на iOS
У меня есть приложение Phonegap, которое работает как на iOS, так и на Android. Приложение имеет функцию входа в систему Facebook, которая работала до нескольких дней назад. Некоторые из наших бета-тестеров сообщили, что "Операция не может быть завершена ошибкой com.facebook.sdk error 2". Устройства этих тестеров различаются: iPhone 5, iPhone 4s, iPod Touch, iOS 5.1.1 и iOS 6.0.
Мы используем последний Facebook SDK и плагин для входа в Phonegap Facebook (https://github.com/davejohnson/phonegap-plugin-facebook-connect/).
Я провел некоторое исследование и нашел следующие причины, почему эта ошибка может произойти:
- BundleIdentifier и BundleURLName в моем файле info.plist не соответствуют идентификатору Bundle в приложении Native iOS в настройках моего приложения для Facebook.
- Приложение все еще находится в режиме Sandbox.
- Приложение отключено в настройках Facebook (настройки устройства → Facebook → Разрешить этим приложениям использовать вашу учетную запись).
- iOS 6.0 не позволяет запрашивать разрешения на чтение и запись в одно и то же время (не уверен, что у меня есть это право).
В следующем случае:
- Соответствие BundleIdentifier и BundleURLName.
- Приложение не находится в режиме Sandbox.
- Приложение не отображается в разделе "Разрешить этим приложениям использовать вашу учетную запись" для каждого пользователя
- Разработчики плагина Phonegap заявили, что исправили ошибку разрешений iOS 6.0 (https://github.com/davejohnson/phonegap-plugin-facebook-connect/pull/216)
Это очень непоследовательная ошибка (в моем случае). Я могу только воспроизвести ошибку самостоятельно, если отключить приложение в "Разрешить эти приложения для использования вашей учетной записи" (в моем случае приложение указано там), но я могу легко исправить ошибку, разрешив приложение снова. На данный момент большинство тестировщиков не имеют этой ошибки (больше), но ошибка остается на iPod (там, где приложение не указано в "Разрешить эти приложения для использования вашей учетной записи" ).
Кто-нибудь знает, почему у меня эта ошибка?
Ответы
Ответ 1
Оказывается: ошибка com.facebook.sdk 2 может перевести на несколько вещей. Я ищу какую-то таблицу перевода ошибок в формате SDK для Facebook, но я не могу ее найти. В моем случае:
Ошибка com.facebook.sdk 2 произошла из-за истечения времени соединения. Пользователи, получившие эту ошибку, имели плохое сетевое/WiFi-соединение.
Мы внедрили систему регистрации ошибок, которая регистрировала данные об ошибках каждый раз при возникновении ошибки при входе в Facebook. В этих журналах мы могли видеть, что ошибка com.facebook.sdk 2 происходит довольно много, но она разрешается каждый раз, когда пользователь пытается войти в систему через несколько секунд.
Возможно, из-за моей неспособности найти нужную документацию, но я был и до сих пор очень расстроен в связи с неопределенностью этих ошибок SDK. Существует много документации о разрешении (что может привести к ошибке com.facebook.sdk 2), но, по-видимому, эта ошибка может быть вызвана большим количеством вещей. Было бы неплохо увидеть, что это где-то зарегистрировано.
Ответ 2
Это произошло для приложения, которое я использовал. Я смог обойти это, перейдя в настройки своего iPhone, выбрав "Facebook", нажав на мое имя и нажав "удалить учетную запись".
Впоследствии я смог войти в приложение без проблем.
Я вернулся к настройкам | facebook и повторно выполнил мои учетные данные.
Приложение все еще работает нормально.
Ответ 3
У меня была эта ошибка, когда я забыл проверить приложение Native iOS (на странице разработчиков Facebook) и набрал свой идентификатор Bundle, который совпадает с идентификатором Bundle в вашем проекте Xcode. (включая название вашего проекта в конце.) У меня также была настройка на странице разработчиков Facebook, в которой был включен режим SandBox. Я также отключил режим Sandbox, чтобы получить эту работу.
Ответ 4
Я долгое время выяснял причину этой ошибки, поскольку я работаю со старым iOS 5.0 для большего охвата устройств. Я только что получил ошибку 400 через отладку запроса facebook. Итак, наконец, я понял, что причина в неизвестности FBSessionDefaultAudience для FBSession (тестировалась в версии 6.0+, а родная facebook api дала мне ошибку). И когда я использовал
+ (BOOL)openActiveSessionWithPublishPermissions:(NSArray*)publishPermissions
defaultAudience:(FBSessionDefaultAudience)defaultAudience
allowLoginUI:(BOOL)allowLoginUI
completionHandler:(FBSessionStateHandler)handler;
эта ошибка окончательно исчезла.
Ответ 5
ПОПРОБУЙТЕ ПЕРВОЕ:
Go to Settings app -> Facebook -> Your App -> Switch it off and back on again.
Это сработало для меня и не требовало, чтобы я фактически удалял учетную запись fb и возвращался обратно, как предлагает @seans23. Если бы это не сработало, я бы попробовал это дальше, но это, по-видимому, помогло сбросить состояние.
Ответ 6
Этот подход работал у меня. (iOS 8)
Контекст:
- Кнопка "Войти" FB не открывала приложение FB и FB в Safari
- Ошибка FB SDK. 2.
- "Мои приложения" не были показаны в настройках FB, чтобы они были включены для использования.
Решение:
- Очистить веб-кэш Safari (он может быть необязательным)
- Удалить приложение Facebook
- Удалить Facebook Messenger
- Установите приложение и зарегистрируйтесь
Идея состоит в том, чтобы удалить и приложение Facebook и Messenger.
Ответ 7
Для меня причина в том, что я тестировал свое приложение на симуляторе. Я хотел поделиться фотографией, и диалог просто не появился, поэтому я подключил свой iPhone, и после этого все прошло гладко!
Ответ 8
у нас была такая же проблема. Как выясняется, причина действительно в тайм-ауте на стороне FB, и особенно если этот таймаут происходит, когда страница входа в систему FB все еще включена, и пользователь нажимает кнопку "отменить". В этом случае ошибка 2 всегда перенастраивается. Итак, если вы хотите повторить и протестировать эту ситуацию, просто нажмите кнопку "отменить" во время соединения с FB.
Ответ 9
В моем случае я создал приложение с учетной записью своих компаний и забыл добавить свой личный профиль с ролью разработчика. После того, как я понял, все прошло гладко.
Приветствия.