Facebook Android SDK выбрасывает недостающий редирект URI на Authekation - PullRequest
9 голосов
/ 11 октября 2011

Я использую Android Android SDK с моим приложением для Android.Все было нормально с моим приложением при разработке моей версии для разработчиков.Когда я, наконец, когда публикую свое приложение для публики, аутентификация facebook выдает ужасную ошибку, когда люди пытаются аутентифицировать мое приложение:

API Error code: 100
API Error description: Invalid parameter
Error Message: Requires valid redirect URI

Похоже, что Facebook думает, что я делаю браузер, перенаправляет их иотсутствует перенаправление URI, чтобы вернуться в мое приложение, но я использую Android SDK, в котором вы не отправляете URI перенаправления, у вас есть прослушиватель обратного вызова:

facebook.authorize(this, new String[] { "email", "publish_stream" }, new FBLoginDialogListener());

Как я уже говорил, все работало нормально во времяразработка и появилась только после выпуска моей версии prod, поэтому я проверил и настройку приложения dev, и настройку приложения prod на fb, и они обе идентичны.

Кто-нибудь еще видел эту проблему?

ОБНОВЛЕНИЕ: Кажется, я получаю эту ошибку только тогда, когда пользователь принимает разрешение войти в мое приложение, но затем не принимает мои разрешения.Хм.Возможно, я не разбираюсь с какой-то ситуацией, но ошибка все равно не имеет для меня смысла.

Ответы [ 6 ]

8 голосов
/ 13 октября 2011

Я решил эту проблему, отключив расширенный диалог авторизации в расширенных настройках вашего приложения на https://developers.facebook.com/apps

С наилучшими пожеланиями

1 голос
/ 12 октября 2011

У меня также возникает такая проблема: когда я пытаюсь запросить новое расширенное разрешение, Facebook отображает для меня то же сообщение об ошибке. Я думаю, что я нашел обходной путь: попробуйте в одном запросе запросить новое разрешение в разделе «Права пользователя и друга» (т. Е. «User_status») и с новым разрешением в разделе «Расширенные права» (т.е. «read_stream»). Разрешения указаны в http://developers.facebook.com/docs/reference/api/permissions/ Надеюсь, что это также поможет вам.

1 голос
/ 11 октября 2011

У меня не так много работы в Facebook, но, думаю, вы неправильно поняли Redirect URL.В классе Facebook есть параметр REDIRECT_URI для перенаправления пользователя в случае успеха. Он не будет перенаправлять вас в браузер, но он называется провайдером Facebook SDK

См. Эту строку

public static final String REDIRECT_URI = "fbconnect://success";

Проверитьэта строка в вашем приложении. Я думаю, что в API Facebook есть какой-то провайдер контента, например fbconnect, так что он будет внутренне вызывать провайдера, может быть, я ошибаюсь.

Спасибо.

0 голосов
/ 29 декабря 2015

Я решил проблему, проверив Встроенный браузер OAuth Login, введя URL , который мое приложение Adobe Air использует для браузера встраиваемой аутентификации FB

Facebook Advanced Settings

0 голосов
/ 13 октября 2011

Точно такая же проблема здесь ... гоняюсь за ней часами ...

Благодаря приведенным выше советам я сделал шаг вперед.

Я написал приложение, которое обновляет статус пользователей. С новым макетом Facebook это то же самое, что и публикация на стене пользователя.

Кажется, для этого мне нужны оба разрешения: {"user_status", "publish_stream"}. Я предполагаю, что user_status дает мне доступ к объекту состояния, а publish_stream (который является «расширенным» разрешением) дает мне доступ на запись.

Некоторые вещи, о которых нужно позаботиться, когда вы экспериментируете с разрешениями, которые я обнаружил, заключаются в следующем. Если вы измените разрешения для своего приложения, то я советую сделать следующее: Перейдите в свою учетную запись Facebook с помощью веб-браузера на вашем компьютере. Переместите стрелку рядом с «Домой» вверху, выберите настройки учетной записи, затем выберите «Приложения» слева. Удалите ваше приложение отсюда. -На вашем Android-устройстве (или эмуляторе) зайдите в Настройки -> Приложения -> Управление. Затем удалите ваше приложение. После этого затем из того же меню принудительно выйдите из приложения Facebook.

После выполнения этих шагов у вас должен быть чистый лист с информацией о повторном развертывании приложения с другими разрешениями. Это тот факт, что приложение facebook что-то кеширует, и разрешения уже зарегистрированы в вашей учетной записи Facebook, что вызывает эту проблему. Однако может быть более точное решение, которое вы можете реализовать в коде, чтобы при изменении разрешений вашего приложения между версиями оно было правильно выбрано.

Мое приложение теперь обновляет статус =)

0 голосов
/ 12 октября 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...