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

Перенаправление на диалог проверки подлинности - "Произошла ошибка. Повторите попытку позже"

Почему это всегда происходит со мной?

Это происходит после того, как мое приложение проверит вход пользователя пользователя и перенаправляет пользователя на страницу аутентификации:

https://www.facebook.com/dialog/oauth?client_id=XXX&redirect_uri=http%3A%2F%2Fexample.com%2Fmyappname%2F&state=YYYYYY&scope=offline_access%2Cpublish_actions

Вместо того, чтобы показывать страницу авторизации, Facebook показывает страницу с ошибкой

Произошла ошибка. Повторите попытку позже.

Есть ли какая-либо конфигурация, которую я должен выполнить, прежде чем пытаться аутентифицировать моих пользователей?

Все выполняется с помощью PHP с использованием классов PHP-SDK.

4b9b3361

Ответ 1

У меня была такая же проблема после изменения домена моего сайта. Хотя я правильно изменил параметр request_uri и обновил настройки своего приложения в новом домене, ошибка продолжалась. Затем я понял, что идентификатор и идентификатор SECRET моего Facebook APP автоматически изменились без предупреждения! Все это снова начало работать с использованием нового идентификатора.

Ответ 2

У меня была та же проблема, что и вы.

На странице "Приложения разработчиков Facebook" убедитесь, что режим "Песочница" отключен.

enter image description here

Ответ 3

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

Ответ 4

Я получал эту ошибку, потому что я начинал с http://mysite.com, но указал http://WWW.mysite.com в моих настройках в Facebook - это было важно для WWW... Я решил решить, используя .httpaccess, чтобы всегда убивать "www", и наведение FB на http://mysite.com

худшее. поддомен. Когда-либо.: И)

Ответ 5

При работе с Dialogues Facebook предоставляет атрибут 'show_error', который по умолчанию равен no, но может быть установлен в true в среде разработки и действительно полезен для целей отладки.

show_error. Если для этого параметра установлено значение true, код ошибки и описание ошибки будут отображаться в случае ошибки.

Инструкции по его использованию можно найти в Facebook Docs.

Я отлаживал "Произошла ошибка. Пожалуйста, попробуйте позже". прежде чем я найду этот атрибут в документах. Как только я начал использовать его, я мог видеть следующее сообщение:

Код ошибки API: 191

API Описание ошибки: указанный URL-адрес не принадлежит приложению

Сообщение об ошибке: redirect_uri не принадлежит приложению.

Ответ 6

У меня была та же проблема; оказалось, что для FB требуется строка appID, а не int...

//DOESNT WORK:
$facebook = new Facebook(array(
  'appId'  => 147XXXXXXXXXXX,
  'secret' => 'XXXXXXXXXXXXXX',
));

// WORKS:
$facebook = new Facebook(array(
  'appId'  => '147XXXXXXXXXXX',
  'secret' => 'XXXXXXXXXXXXXX',
));

Ответ 7

Для меня это произошло потому, что созданный мной "тестовый пользователь" был частью отдельного приложения. Я создал тестового пользователя для этого приложения, и он начал нормально работать.

Глупо с моей стороны, я знаю, но это может спасти кому-то еще некоторые неприятности.

Ответ 8

Убедитесь, что ваше приложение настроено на использование соответствующего URL-адреса и домена вашего сайта. Возможно, это и есть.

Ответ 9

Согласно документации OAUTH Dialog:

* redirect_uri: URL-адрес для перенаправления после того, как пользователь нажимает кнопку в диалоговом окне. Указанный URL должен быть URL-адресом с тем же базовым доменом, который указан в настройках вашего приложения, URL холста формы https://apps.facebook.com/YOUR_APP_NAMESPACE... *

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

Теперь моя ссылка на диалог oauth работает нормально - даже в режиме песочницы.

Ответ 10

У меня была эта точная проблема в приложении с вкладкой страницы, и для меня жизнь не могла решить, в чем проблема. Он работал на моей тестовой странице, но как только я сделал это вживую, это не сработало. В конце концов я обнаружил, что исправил проблему, поместив фактический URL-адрес на вкладку "Страница" (т.е. http://www.facebook.com/<"page_name">/app_<"app_id">) в "URL-адрес сайта" в разделе "Веб-сайт". Это не имеет никакого смысла. Но это сработало: -)

Ответ 11

Решение для меня - установить параметр "Проверенные рефералы" для включения. Это действительно исправлено после этого.

Fix permissions error

Ответ 12

Проблема была решена после того, как я обновил "appID" и "secret", а затем перевел изменения обратно на герою (т.е. - "git нажать" мастер героя ")

Ключом является не забыть возвращать изменения герою мастера. Очень легко упускать из виду, если вы используете для тестирования на localhost.

Надеюсь, что это поможет.

Ответ 13

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

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

Мне потребовалось несколько часов, чтобы найти это, поэтому я надеюсь, что это поможет кому-то.

Ура!

Ответ 14

Также возникла проблема с неправильной ссылкой перенаправления: у меня была ссылка, начинающаяся с "https://apps.facebook.com?myapplication".... но после авторизации перенаправление приведет меня к "apps.facebook.com/Myapplication", и, следовательно, я получил бы сообщение, описанное выше: "Произошла ошибка. Попробуйте позже". поскольку "apps.facebook.com" означает "http://apps.facebook.com/Myapp", а не "HTTPS://apps.facebook.com/,..."

Решение: переход к настройкам моего приложения в разделе разработчиков facebook. Нажмите "Изменить". В левом меню выбрано "Разрешения" (по умолчанию для меню установлено значение "Базовый" ), а во вновь открывшемся наборе параметров изменился мой "Параметр токена аутентификации" от "Строка запроса" до "Фрагмент URL".

Это сработало! По завершении авторизации пользователи берутся на "https://apps.facebook.com/myapp..."

Ответ 15

Другая возможная ошибка, если вы скопировали код из примера SDK Facebook, вы можете получить ту же ошибку, несмотря на то, что все правильно. http://developers.facebook.com/docs/reference/php/

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

require_once("facebook.php");

$config = array();
$config['appId'] = 'YOUR_APP_ID';
$config['secret'] = 'YOUR_APP_SECRET';
$config['fileUpload'] = false; // optional

$facebook = new Facebook($config);

Ответ 16

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

Ответ 17

Я сам столкнулся с этой проблемой. Я разрабатываю приложение внутренне, поэтому мой хост является "localhost" . Было не очевидно, как установить "localhost" в конфигурации приложения. Если вы хотите разработать локально, настройте свое приложение, выполнив следующие шаги:

  • Перейдите в то место, где вы управляете своим приложением Facebook. В частности, вы хотите находиться в "Basic" в меню "Настройки".
  • Добавьте "localhost" в "домен приложения".
  • В разделе "Выберите, как ваше приложение интегрируется с Facebook", выберите "Веб-сайт" и введите "http://localhost/".

Сохранить и подождать пару минут для распространения информации, хотя это сработало сразу для меня.

Ответ 18

Я установил ограничение на приложение, которое может использовать приложение только для проживания в Соединенных Штатах. Я работал в Канаде в то время, когда появилось это сообщение об ошибке. После устранения ограничения все сработало.

Ответ 19

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

Ответ 20

У меня была та же проблема, и исправить ее, добавив param & display = touch для URL

попробуйте, это может помочь

Ответ 21

Ответ на 2015 год

Режим "Песочница" исчез.

Перейдите к My Apps -> Your App -> Status & Review и измените ползунок на "Да" для:

Вы хотите сделать это приложение и все его живые функции доступными для широкой публики?

введите описание изображения здесь

Ответ 22

Если вы разработчик приложения, вы можете увидеть более конкретное сообщение об ошибке, но обычно это сообщение означает одну из двух вещей:

  • Ваш сервер вернул код ошибки HTTP (обычно 5xx)
  • Вы попытались отправить пользователя после входа в URL-адрес, который не разрешен конфигурацией вашего приложения (хотя в качестве администратора приложения в этом случае вы должны увидеть более конкретное сообщение об ошибке и код ошибки Facebook)

Ответ 23

У меня была эта ошибка, потому что я использовал redirect_url как параметр вместо redirect_uri.

Страница Server-Side Authentication сообщает, что используется redirect_url:

https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID
   &redirect_url=YOUR_REDIRECT_URI
   &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
   &state=SOME_ARBITRARY_BUT_UNIQUE_STRING

Но это неверно. OAuth Dialog doc говорит, что вместо этого используется redirect_uri, поэтому я предполагаю, что вы можете использовать только один, а не другой:

https://www.facebook.com/dialog/oauth/?
    client_id=YOUR_APP_ID
    &redirect_uri=YOUR_REDIRECT_URL
    &state=YOUR_STATE_VALUE
    &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES

Ответ 24

Вам нужно указать http:// в вашем REDIRECT URI.

Ответ 25

Я попробовал все ответы, упомянутые здесь. Но это не сработало. Мне пришлось удалить и создать снова. Я предполагаю, что это было связано с новым "Аутентифицированным рефералом". Если вы добавили объекты Open Graph, которые не были одобрены, это может привести к ошибке.

Ответ 26

У меня была та же проблема, и основная причина была другой:

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

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

Ответ 27

В моем случае возникла проблема с учетной записью, используемой с приложением.

Если приложение FB имеет алкогольный контент, пользователи FB, которые моложе, чем около 21, будут вызывать ошибку при попытке авторизации с ней.

Ответ 28

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

Ответ 29

Нет возможности решить этот тип ошибок. Так что лучше использовать свой собственный диалог так же, как показано в facebook, и отправлять сообщения снова и снова без входа. Несмотря на то, что вы удаляете свое приложение из facebook, вы можете запросить логин и отправить сообщение успешно.

Ответ 30

Причина в моем случае была совершенно иной. Я попытался открыть диалог Feed автоматически после загрузки страницы. И 9 раз из 10 отобразилась эта ошибка. Во-первых, я добавил параметр show_error: true, предложенный @Peter Roome, но это не помогло, отображая 104: Invalid signature, а не описательно вообще.

Тогда я понял причину. Код находился в функции $(document).ready jQuery. И кажется, что некоторые вещи в facebook еще не были загружены в тот момент, когда код должен был быть выполнен. Я переместил код в блок $(window).load (который выполняется после загрузки всего содержимого страницы), и проблема была решена.