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/