Trigger.IO Facebook Авторизуйтесь, не открывая страницу входа

ТЛ; др;

Проблема 1: Симулятор iOS зависает при попытке авторизации на facebook.authorize. Safari откроется с помощью мобильного URL-адреса Facebook, но страница не будет отображаться.

Решение 1. Неправильно написано разрешение (publish_actions). Убедитесь, что права доступа и аудитория указаны правильно.

Проблема 2: Симулятор iOS (7.0.3) завершит процесс facebook.authorize, но тот же код на моем iPhone 5 (7.0.4) всегда будет возвращать "Ошибка входа". Вот скринкаст о проблеме: http://youtu.be/yQiYMFH5y3U

Решение 2. В меню "Настройки"> "Facebook" есть список приложений, которые имеют (или не имеют) право доступа к Facebook через SDK. Мое приложение было отмечено как отключенное в списке. Убедитесь, что приложение включено в список.


При использовании модуля Facebook в Trigger.IO для авторизации на iPhone вызов API forge.facebook.authorize не открывает окно авторизации Facebook, как ожидалось.

Из документации модуля Trigger.IO Facebook для forge.facebook.authorize:

Авторизуйте текущего пользователя через Facebook. Может отображать пользовательский интерфейс входа в систему, если требуются новые разрешения или если действительный токен для входа недоступен (т.е. при первом входе в систему).

Вместо этого обратный вызов ошибки вызывается с этим сообщением:

{"message": "Ошибка входа","type":"EXPECTED_FAILURE","subtype":null}

Запуск того же кода в симуляторе iOS (v7.0.3) откроет приглашение для входа в Facebook, как и ожидалось.

Вызов forge.facebook.hasAuthorized возвращает эту ошибку, как и ожидалось:

{"message": "Пользователь не вошел в систему или недостаточно прав для чтения","type":"EXPECTED_FAILURE","subtype":null}

Вызов forge.facebook.authorize осуществляется без каких-либо разрешений или параметров аудитории; только успех и ошибки обратного вызова.

Конфигурация тестирования:

  • Trigger.IO v2.1.4
  • Модуль Facebook v2.3
  • iPhone 5 (iOS 7.0.4)
  • IOS приложение для Facebook v8.0

Любые идеи о том, как получить функцию forge.facebook.authorize, чтобы открыть приглашение входа в Facebook?

Обновление № 1:

Мне удалось получить ошибку для воспроизведения на симуляторе iOS. Я попытался добавить параметры прав доступа и аудитории, и я думаю, что проблема в том, что параметр аудитории не анализируется как строка при отправке в Facebook, что приводит к ошибке запроса.

Вот вывод журнала: [ INFO] 2014-03-24 17:39:39.750 Forge[9247:a0b] [DEBUG] Native call: { [ INFO] callid = "31F68389-DE82-4F71-A689-213E008A28E6"; [ INFO] method = "facebook.authorize"; [ INFO] params = { [ INFO] audience = friends; [ INFO] dialog = 1; [ INFO] permissions = ( [ INFO] "read_stream", [ INFO] "public_actions" [ INFO] ); [ INFO] }; [ INFO] start = "1395697179.74"; [ INFO] } [ INFO] 2014-03-24 17:39:39.937 Forge[9247:1503] [WARNING] Error reporting partner data to Facebook

Обновление № 2:

Удаление разрешений и параметров аудитории работает на симуляторе iOS: [ INFO] 2014-03-24 18:28:22.652 Forge[10387:a0b] [DEBUG] Native call: { [ INFO] callid = "22233011-4A9F-41E0-841E-4616E9E944D9"; [ INFO] method = "facebook.authorize"; [ INFO] params = { [ INFO] dialog = 0; [ INFO] permissions = ( [ INFO] ); [ INFO] }; [ INFO] start = "1395700102.606"; [ INFO] }

1 ответ

Решение

"public_actions" не является допустимой строкой разрешения.

Возможно, вы имели в виду "publish_actions"?

Полный список разрешений документирован здесь: https://developers.facebook.com/docs/facebook-login/permissions/

Другие вопросы по тегам