Facebook авторизуется с разрешением запроса "Страница не найдена" - PullRequest
7 голосов
/ 26 сентября 2011

Где-то на протяжении последних нескольких недель авторизация вызова Facebook в iOS завершается неудачно с сообщением «Страница не найдена». Это происходит для любого пользователя, который не установил приложение, или если разрешения приложения изменились, и пользователь должен утвердить дополнительные разрешения. Это происходит независимо от того, обрабатывает ли приложение Facebook аутентификацию пользователя, Safari или всплывающее диалоговое окно. Все перенаправить на страницу «Страница не найдена».

Перебирая отладчик, я обнаружил, что начальный запрос URL (идентификатор приложения заменяет «[app_id]») для экрана входа в систему:

https://m.facebook.com/dialog/oauth?type=user_agent&display=touch&redirect_uri=fb[app_id]%3A%2F%2Fauthorize&sdk=2&scope=user_location%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&client_id=[app_id]

При попытке входа в систему выполняется поиск следующего URL-адреса (по URL-адресу я предполагаю, что у пользователя недостаточно прав):

http://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=[appid]&redirect_uri=fb[appid]%3A%3F%3Fauthorize&sdk=2&display=touch&type=user_agent&fbconnect=1&perms=user_location%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&sso=iphone-safari&from_login=1

Я проверил, что идентификатор комплекта, указанный в XCode, совпадает с указанным для настроек моего приложения в Facebook.

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

Ответы [ 3 ]

5 голосов
/ 27 сентября 2011

Хорошо, я чувствую себя немного глупо.

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

  1. В настройках разработчика Facebook: https://developers.facebook.com, редактировать настройки приложения.
  2. Выберите вкладку «Дополнительно» в разделе «Настройки» с левой стороны.
  3. Убедитесь, что «Режим песочницы» не включен.
3 голосов
/ 17 мая 2012

У меня была такая же проблема, когда мой идентификатор приложения был неверным в Info Plist.

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb305639062848xxx</string>
        </array>
    </dict>
</array>

Я обнаружил, что там должен быть указан не идентификатор Apple App ID, а идентификатор приложения Facebook.(Общие в настройках вашего приложения на веб-странице разработчиков Facebook, в разделе «Имя приложения» указаны «Идентификатор приложения» и «Секрет приложения»)

Там 3 последние цифры скрыты ххх.

0 голосов
/ 26 сентября 2011

Если ссылка, которую вы публикуете, является в точности ссылкой в ​​вашем приложении, то в параметре «redirect_uri» отсутствует буква «e»."fbconnect" также.

http://www.facebook.com/dialog/permissions.request?_path=permissions.request&app_id=[appid]&redirct_uri=fb[appid]%3A%3F%3Fauthorize&sdk=2&display=touch&type=user_agent&fbocnnect=1&perms=user_location%2Cuser_relationships%2Cemail%2Cpublish_stream%2Coffline_access&sso=iphone-safari&from_login=1

Кроме того, вы должны убедиться, что ваш [appid] правильный, а fb[appid]%3A%3F%3Fauthorize - правильная ссылка обработчика FB вашегоприменение.

...