Подтвердить что ты не робот

Ошибка 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 (там, где приложение не указано в "Разрешить эти приложения для использования вашей учетной записи" ).

Кто-нибудь знает, почему у меня эта ошибка?

4b9b3361

Ответ 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

В моем случае я создал приложение с учетной записью своих компаний и забыл добавить свой личный профиль с ролью разработчика. После того, как я понял, все прошло гладко.

Приветствия.