it-swarm.com.ru

Перенаправление в диалог аутентификации - «Произошла ошибка. Пожалуйста, попробуйте позже»

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

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

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.

49
Wanderson Silva

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

38
albert

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

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

enter image description here

64
dxit

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

16
Juank

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

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

7
case2000

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

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

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

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

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

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

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

7
Pete

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

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

5
James Pelton

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

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

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

Для меня решение состоит в том, чтобы включить опцию "Аутентифицированные рефералы". Это действительно исправлено после этого.

Fix permissions error

3
FelikZ

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

3
SBerg413

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

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

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

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

3
Tomas Molnar

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

3
Owen Davey

Также была проблема с неправильной ссылкой на перенаправление: у меня была ссылка, начинающаяся с "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 ..."

2
anne

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

2
Suraj

Проблема была решена после того, как я обновил "appID" и "secret", а затем вернул изменение обратно в heroku (т. Е. "Git Push heroku master")

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

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

2
edwinjue

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

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

require_once("facebook.php");

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

$facebook = new Facebook($config);
2
Sanket Sahu

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

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

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

Ура!

2
Tiago

Ответ за 2015 год

Режим песочницы исчез.

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

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

enter image description here

1
Abram

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

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

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

1
Me Too

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

1
Chris

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

1
LizardKG

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

попробуй, может поможет

1
Sergey Nikolaev

Проверьте ваш appid и убедитесь, что вы обновили URL своего сайта. Мобильный URL сайта в https://developers.facebook.com/

0
shaik

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

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

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

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

Я испробовал все решения, но не получил ответа, так как не удалял предыдущее приложение, только очистка сборки не удовлетворяет условию. Надеюсь, это кому-нибудь поможет. :)

0
mAc

Настройки> Дополнительно> Безопасность> Действительный oauth URI перенаправления

enter image description here

0
Pablo S G Pacheco

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

0
Chris Kirby

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

0
Click Upvote

Я столкнулся с той же проблемой, и причина была в том, что мой app was not live и общедоступный.

Я добавил свой идентификатор электронной почты в контактную электронную почту под вкладками настроек и включил свое приложение (которое ранее было отключено, чтобы запустить).

После запуска приложения отображается диалоговое окно с соответствующим изображением, заголовком и описанием с именем приложения внизу.

0
RN Kushwaha

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

0
Rahul

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

На странице Аутентификация на стороне сервера указывается использовать 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 говорит, что вместо него следует использовать 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
0
user456814

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

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

0
Dennis Golomazov

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

0
Hetal Modi

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

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

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

0
yonix

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

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

0
Chris