Facebook OAuth "Домен цієї URL-адреси не включений у домен додатка"


248

Дозвольте спочатку сказати, що я шукав відповідь на це питання досить довгий час ...

Я намагаюся налаштувати Facebook OAuth для роботи зі своїм додатком, який розробляється локально на моїй машині. З авторизацією у Facebook все працювало ідеально, Доки я не перейшов з localhostіншого доменного імені (все ще локального для моєї машини.) Тепер я отримую таку помилку.

Неможливо завантажити URL: Домен цієї URL-адреси не включений у домени додатка. Щоб мати змогу завантажити цю URL-адресу, додайте всі домени та піддомени свого додатка в поле Домени додатків у налаштуваннях додатка.

Мій файл хостів містить 127.0.0.1 photovote.dev (працює ідеально)

Моє переадресація в моєму додатку (за допомогою Socialite) є http://photovote.dev/auth/facebook/callback

У моїх настройках програми Facebook ...

  • мій Домен додатка photovote.dev
  • моя URL-адреса сайту http://photovote.dev/
  • мої Дійсні URI-адреси переадресації є http://photovote.dev/auth/facebook/callback

URL-адреса на момент повідомлення про помилку ..

https://www.facebook.com/v2.5/dialog/oauth?client_id=XXXXXXXXXXXXXXX&redirect_uri=http%3A%2F%2Fphotovote.dev%2Fauth%2Ffacebook%2Fcallback&scope=email&response_type=code&state=0ztcKhmWwFLtj72TWE8uOKTcf65JmePtG95MZLDD

Я втрачаю те, що проблема ...

Екран Постріл 1
Екран постріл

Екранний знімок 2 введіть тут опис зображення


3
Привіт dangel, ви можете захопити ваш клієнт FB FB від цієї публікації
a.benain

@dangel, як ти вирішив це питання? У мене виникає те саме питання, але не в змозі вирішити.
Ghimire

@Ghimire, в моїй ситуації я змінив URL-адресу і не оновлював свого клієнта \ секрет. Якщо читати рішення нижче, схоже, що насправді можуть бути різні причини, що призводять до однієї помилки.
dangel

@dangel перевіри це. stackoverflow.com/questions/46626914/…
Ghimire

Відповіді:


82

Зазвичай це відбувається, якщо ви ввели неправильні дані, коли ви створили додаток у Facebook. Або ви змінили URL-адресу існуючого додатка?

Чи можете ви повторно перевірити налаштування додатка на цій сторінці?

https://developers.facebook.com/apps

  1. Виберіть правильний додаток і натисніть кнопку редагування;

  2. Перевірте, чи правильно введені URL-адреси та шляхи та вказують на сайт, де ви встановили плагін Ultimate Facebook.


3
Я щойно побачив, що ви сказали про "ви змінили URL-адресу існуючого додатка", саме так і сталося, і, мабуть, це спричинило створення нового клієнтського таємного ідентифікатора
dangel

Привіт, я також намагаюся реалізувати fb oauth у своєму додатку. Я маю дати всі подробиці на fb app. Але наступна помилка з’явиться під час переадресації зворотного дзвінка. InternalOAuthError: не вдалося отримати маркер доступу на Strategy.OAuth2Strategy._createOAuthError (D: \ node_tutorials \ fb \ node_modules \ passport-oauth2 \ lib \ strategy.js: 370: 17) у D: \ node_tutorials \ fb \ nport_mod \ lib \ strategy.js: 166: 45 в D: \ node_tutorials \ fb \ node_modules \ oauth \ lib \ oauth2.js: 177: 18
Ананд

Ще одна річ, щоб спробувати, що працювало на мене: спробуйте переключити зворотний зв'язок з https на http. Це включає зміну як коду, який викликає getLoginUrl (), так і зміни URL-адреси зворотного виклику в налаштуваннях додатка. Зворотній зв'язок мені ніколи не працював із HTTPS, незважаючи на те, що сайт використовує HTTPS.
Josh1billion

У мене є те саме питання, але після відкриття сторінки локально; Я додав 127.0.0.1:8000 до авторизованих адрес, оскільки це налаштовано мою інсталяцію easyphp, але вона все ще не працює. Чи можу я лише перевірити сценарії FB в Інтернеті?!?
стрибок

"натиснути кнопку редагування" мммм, яка кнопка це?
Олександр Міллз

210

У випадку, якщо хтось стикається з цим і шукає ці налаштування (як я)

Ти мусиш

  1. Ліворуч натисніть "+ Додати товар" та виберіть "Вхід у Facebook" (для мене це було вгорі)
  2. Дивіться нові налаштування, доступні в лівій частині
  3. Тепер ви матимете ці налаштування OAuth у цьому "Налаштування продукту"

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

Додаткова інформація: Переконайтеся в тому , щоб додати URL зворотного виклику , як http://localhost:3000в Valid OAuth redirect URIsполі на сторінці налаштувань в Facebook Вхід


22
Це не те, на що посилається повідомлення про помилку. Існує специфічне повідомлення про помилку щодо дійсних URI-адрес переадресації OAuth. Це не те, що відбувається тут. Повідомлення чітко посилається на Налаштування »Основні» Домени додатків. Однак проблема полягає в тому, що, хоча правильні домени заповнені, повідомлення про помилку все ще з’являється.
fritzmg

@HakamFostok міський словник осторонь, Математика панує у вищому порядку для значення LHS / RHS en.wikipedia.org/wiki/Sides_of_an_equation , особливо у світі кодування.
Крейг Ламбі

9
Це зафіксувало це для мене. Незважаючи на те, що я правильно заповнив домен, я не додав URL-адресу переадресації. Додавання URL-адреси переадресації вирішило проблему. Схоже, наразі ФБ надсилає неправильне повідомлення про помилку для цієї проблеми.
Річард Гарсайд

Я працюю локально, і це мій URL 127.0.0.1/CM/public, яким повинен бути мій URI-код переадресації OAuth?
Юсеф Будая

1
Це працювало для мене в api v2.7, і коментар @ RichardGarside є точним. У мене не було встановлено значення, Valid OAuth Redirect URIsі додавання цього значення поля вирішило неправильне повідомлення про помилку FB, пов’язане з оновленням вашого App Domains.
johnsampson

60

У мене була така ж проблема. Я вирішив це, додавши мій URI переадресації OAuth як аргумент до виклику функції getAccessToken:

$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")

Якщо в цю функцію не надіслано жодного аргументу, SDK сам по собі генерує URI переспрямування, який повинен працювати, але в моєму випадку він не став.

Сподіваюся, що це комусь допоможе.


2
Це єдиний спосіб, коли я міг би змусити його працювати після переміщення свого веб-сайту з http на https. Навіть після зміни всіх доменів у налаштуваннях Facebook Api це просто не працюватиме.
Кріс

6
Це має бути прийнятою відповіддю. Вирішує проблему!
tormuto

У моєму випадку сама URL-адреса не повинна містити порожніх параметрів. Коли я даю "www.example.com?param" для getAccessToken, FB завжди говорив, що він не відповідає URI, який я дав getLoginUrl, і я абсолютно впевнений, що це точно так само. Використання "www.example.com" не призводить до такої помилки.
Chlind

2
спасибі . вирішено цим - дуже погано від facebook, тому що всі ці помилки абстрактні / неоднозначні, і ви не знаєте, куди теж шукати
digitalzoomstudio

Це відповідає на питання.
Джон

35

Переконайтеся, що ваш додаток загальнодоступний. Клацніть на + Додати товар Тепер перейдіть до продуктів => Facebook Увійти Зараз зробіть наступне:

Дійсні URI-адреси для переадресації OAuth: example.com/

Деавторизуйте URL-адресу зворотного виклику: https://example.com/facebookapp http://unicodeitsolutions.com/


1
Для чого Deauthorize Callback URL : https://example.com/facebookappпотрібно? Чи буде працювати без цього?
Йордан

Деавторизація URL-адреси зворотного виклику не є обов'язковою ... коли користувач деавторизує наш додаток, facebook буде пересилати нам URL за адресою.
Санхой Канрар

20

Ось що я зробив для вирішення цього питання: введіть тут опис зображення

В основному:

1) Увімкніть " Вбудований браузер OAuth "

2) Вимкніть " Використовувати суворий режим для URI з перенаправленням " і введіть URI переспрямування, як я.

3) Залиште всі інші варіанти, як вони є.

4) Збережіть свої зміни.

5) Насолоджуйтесь :)


Це вирішило це для мене. Я не хотів публікувати свою програму загальнодоступною, оскільки я лише робив підручник і тестував його локально. Дякую @bangbang
PHBeagle

1
Для мене використання суворого режиму для URI перенаправлення неможливо відключити.
fdehanne

8

У мене була така ж проблема, і вона виникла з неправильного ідентифікатора програми client_id / Facebook.

Ви переключили додаток Facebook на "загальнодоступне" чи "онлайн"? Коли ви це зробите, Facebook створює новий додаток з новим ідентифікатором додатка.

Ви можете порівняти значення параметра "client_id" у URL-адресі із значенням на панелі інструментів Facebook.


Все, що я зробив, - це змінити домен і URL сайту, щоб відповідати зміні з localhost на photovote.dev. Я оновив URI переспрямування у своєму додатку, а також у налаштуваннях Facebook. Я можу просто спробувати створити новий додаток
dangel

хм, я думаю, що я щось змінив у налаштуваннях програми, що спричинило створення нового ідентифікатора, тому що ти маєш рацію, він більше не відповідає. Можливо, коли я оновив URL-адресу сайту? незважаючи на те, що він працює знову
dangel

Це працювало для мене. Використовувався старий ідентифікатор програми у виробництві.
Marcus W

8

Як я це виправив: я перейшов до текстового поля Valid OAuth Redirect URIs і встановив точну URL-адресу, а не лише домен :

перед: https://my-website.com

після: https://my-website.com/facebookoauth/facebooklogin

(URL може бути різним у вашому випадку, перевірте це в адресному рядку браузера).

Це було викликано налаштуванням використання жорсткого режиму для URI з перенаправленням, яке було заблоковано в положенні Так.


Дуже дякую за це. Це
вирішило

7

Неможливо завантажити URL: Домен цієї URL-адреси не включений у домени додатка. Щоб мати змогу завантажити цю URL-адресу, додайте всі домени та піддомени свого додатка в поле Домени додатків у налаштуваннях додатка.

У мене ця проблема була сьогодні, я вважаю, що документація на Facebook і SDK є найменш неповажними і зухвалими щодо інших розробників.

Крім того, що у вас є "домени додатків" у двох різних місцях без особливої ​​інформації (3, якщо ви додасте платформу "веб"), вам також потрібно перейти до продуктів додатків / facebook / входу / налаштувань та додати свою URL-адресу переспрямування під діючими URI-адресами переадресації OAuth.

Помилка говорить НІЧЕ про налаштування oauth.


1
Так, мені довелося зробити і цей додатковий крок. Я поділяю ваші погляди на документацію!
Магнус Сміт

6

Станом на 2017-10 роки.

Рішення, яке вирішило мою проблему.

Наразі ФБ проводить цей сюрприз.

... Налаштування клієнта OAuth програми. Переконайтеся, що вхід для клієнтів та веб-OAuth увімкнено ...

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

Налаштування для налаштування розміщені тут https://developers.facebook.com/apps/ evidenceyour_app_itentifierSense/ fb-login/ .

Похила коса риса є важливою. Вони повинні відповідати коду вашого додатка та налаштуванням адміністратора FB. Отже, це конфігурація десь у вашому коді (див. Нижче, як отримати будь-яке доменне ім’я для програми для розробників):

{
    callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}

і тут

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

Щоб отримати будь-яке доменне ім’я для програми на локальній машині Windows, відредагуйте hostфайл. Призначені для користувача імена гарні для того , щоб позбутися від усіх тих localhost:8080, 0.0.0.0:30303, 127.0.0.0:8000, і так далі. Тому що деякі сторонні служби, такі як FB, іноді не дозволяють вам використовувати 127.0.0.0імена.

У Windows 10 hostsфайл знаходиться тут:

C:\Windows\System32\drivers\etc\hosts

Створіть резервну копію початкового файлу, створіть копію з іншим іменем (не працює у рідній Windows CMD. Я використовую Git для Windows , у ньому багато команд Unix)

$ cp hosts hosts.bak

Додайте це до hosts

127.0.0.1  myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1  www.myotherapp.io # In a browser http://www.myotherapp.io:2020

Щоб позбутися частини порту, наприклад, :3000встановіть NGINX.


Дякую за це, не мав уявлення про те, що косою косою рисою не потрібно!
Енді Холмс

11 травня 2018 року URL-адреса зворотного дзвінка у додатках та дійсні URI-адреси для переадресації у facebook повинні бути однаковими. і https - це потрібно, хоча.
Юда Правіра

Похила косої риски економить мій час. Дякую!
HyoJin KIM


6

Більшість випадків трапляється, якщо в розділі продуктів панелі приладів FB не надсилається належна дійсна URL-адреса переадресації OAuth. Я пропоную виконувати мої наступні кроки

01. Перевірте, чи налаштовано базову програму, чи з вами нижче зображення

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

02. перевірте, чи додали ви товар

Якщо ні, ви можете легко додати продукт для входу, натиснувши + sine, як я показую внизу.

Якщо так, просто потрапили до налаштувань продукту. введіть тут опис зображення

03. Перевірте, чи надано дійсну URL-адресу для переадресації OAuth

Це просто означає, що слід після входу в систему. Це не інше, як ваш зворотний дзвінок URl. Ви можете бачити на моїй картинці внизу, я додав кілька URL-адрес переспрямування. введіть тут опис зображення

  1. є додаткові проблеми Дивіться моє відео--> https://www.youtube.com/watch?v=mdhubrzV5y8&t=3s

2-річне запитання та посилання на зовнішні сайти не повинні бути основним змістом відповіді.
zzxyz

6

Нещодавно Facebook відключив кнопку перемикання для " Використовувати суворий режим для перенаправлення URI ", тому вам потрібно додати точний URI, що викликається, коли натиснути кнопку входу. У моєму випадку це було так, як показано на скріншоті. Це вирішило для мене питання :)

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



5

У моєму випадку, мені довелося зробити лише ввімкнення вбудованого браузера OAuth

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


Я також використовував логін на основі браузера, тому з тією ж проблемою я стикався. Також внизу є поле введення, де мені довелося поставити точний URI переспрямування.
абсин

4

Ніщо насправді не працювало для мене, поки я не оновив версію SDK, яку я використовував. Я почав з 5.0. Не працювало б навіть 5.4.0. Коли я оновив до 5.6.2, він працював бездоганно, незважаючи на те, що в змінних журналах нічого не було, що було б актуальним!


1
У мене саме була ця проблема! Я використовував "5.4.2" та перейшов до "5.6.2"
Джон Сміт

2

Цю опцію слід включити на порталі:

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


Дякую. У мене була така ж проблема, і це був перемикач, який я пропустив.
timeon

Дякую! Це також працювало для мене (я використовував Google Firebase. Мені також довелося встановити "Дійсні URI-адреси переадресації OAuth" на URI-
адрес

2

Якщо це допомагає комусь іншому, це почалося для мене на старому сайті, коли "Дійсні URI перенаправлення OAuth" стали обов'язковими. На сайті все ще використовується V4 PHP SDK, і проблема була вирішена для мене шляхом оновлення до V5 SDK.


1

У розділі Домен програми ви пишете домен додатка, але вам також потрібно додати свій домен для входу, тобто ім'я сторінки html, де ви просите користувача ввійти. У моєму випадку я тестував його на localhost і маршрут входу був localhost / login. Якщо я лише розміщую http://localhost.com у розділі домену додатка, я отримую цю помилку. Але після додавання http: //localhost/login.com помилка була виправлена. а також налаштування програми змінилися в новій версії SDK, в якій немає можливості для маршруту переадресації OAuth. Вам слід призначити маршрут переадресації безпосередньо з боку сервера, після успішного отримання маркера OAuth.


1

Це працювало для мене:

Ось головне, що потрібно зрозуміти: Facebook завжди перевірятиме домен " WWW ". Тому переконайтеся, що www.your_domain.dev спочатку працює над вашим браузером.

Можливо, якщо у вас на локальному сервері кілька віртуальних хостів, якийсь інший віртуальний хост перекриває " www.your_domain.dev ". Тож будь ласка, перевірте це. Apache вибере ПЕРШЕ визначення домену (або портів, або чогось у цих термінах - я не знаю цього, але я вчуся помилками). Просте швидке виправлення цього віртуального хоста, що переосмислить, - це " визначення визначення віртуального хоста www.your_domain.dev на самому верху файлу" httpd-vhosts.conf ".

Перейдіть до " /apache/conf/https-vhosts.conf " і поставте це в саму верхню частину файлу:

<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
    Options FollowSymLinks Indexes
    AllowOverride All
    Order deny,allow
    allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>

###### FOR SSL #####
<VirtualHost *:443>
    DocumentRoot "C:/your_app_folder_path/"
    ServerName your_domain.dev
    ServerAlias www.your_domain.dev
    SSLEngine on
    SSLCertificateFile "conf/ssl.crt/server.crt"
    SSLCertificateKeyFile "conf/ssl.key/server.key"
    <Directory "C:/your_app_folder_path/">
        Options All
        AllowOverride All
        Require all granted 
    </Directory>
</VirtualHost>

Далі: Якщо ви використовуєте систему Windows, відредагуйте файл "hosts" у "C: \ Windows \ System32 \ driver \ тощо", додавши два рядки:

127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev

Далі: перезавантажте сервер Apache і все має працювати зараз.


Я сподіваюся, що це допоможе вам і заощадить ваш час. Я витрачав майже цілий день на пошуки Інтернету, витягував волосся і не міг знайти нічого корисного, поки не знайшов цього.


1

У мене була така ж проблема ..... випуск у версії PHP SDK 5.6.2 і виправлення редагувало наступний файл:

facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php

змінити цей рядок

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);

до

$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);


0

Ця сама помилка у Facebook трапилася зі мною у виробничому середовищі. Причиною було те, що у мене було зареєстровано 2 програми у Facebook (Local, Production), але я жорстко закодував ідентифікатор локального додатка у вихідний код і забув його вимкнути для ідентифікатора додатка для виробництва перед розгортанням.

Найкраща практика диктує, що ви не повинні вводити ідентифікатор додатка в кодовому коді, але якщо ви цього не зробите, не збігайтесь з різними ідентифікаторами додатків Facebook, як я помилково зробив.


0

Використання власного локального сервера.

Просто додавання http://localhost/my-siteв якості URL-адреси в:

https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/

працював на мене.


0

Проблема та відповіді не змінюються, оскільки FB посилює процедуру входу. Сьогодні я почав отримувати це повідомлення про жах: "Домен цієї URL-адреси не включений у домени додатка. Щоб мати змогу завантажити цю URL-адресу, додайте всі домени та піддомени вашого додатка в поле Домени додатків у налаштуваннях додатка".

Відповідь була: зараз ФБ хоче повний урі переадресації. Тож для мене, де раніше це було лише https://www.example.com, тепер він хоче https://www.example.com/auth/facebook/callback . Це має пройти в полі "Дійсні URI-адреси переадресації OAuth" (налаштування для входу для розробників / Facebook)


0

Вхід у Facebook -> Налаштування -> Дійсні URI-адреси для переадресації OAuth -> вставте домени URL-адреси переадресації, пам’ятайте, що вам слід додати «https» або http. Наприклад: якщо ваш URL-адреса переадресації https://xxx.xxx.com/path/callback.do , вам потрібно лише ввести https://xxx.xxx.com/ , для мене це нормально.


0

перший крок: використовуйте всю https://example.in або URL-адресу сертифіката ssl, не використовуйте http://example.in

другий крок: налаштування програми faceboook-> основні налаштування-> додати свій домен або піддомен

третій крок: налаштування входу в faceboook-> Дійсні URI-адреси переадресації OAuth-> додати весь URL-адресу переадресації після входу

Четвертий крок: налаштування програми faceboook-> попереднє налаштування-> Диспетчер домену-> додати ваше доменне ім’я

зробіть все це, потім використовуйте ідентифікатор програми, версію програми, секрет програми для налаштування


0

у розширенні Magento 2 Social Login потрібно скопіювати дійсні URI-адреси для переадресації OAuth з панелі та додати посилання на поле Дійсні URI-адреси для переадресації OAuth на сторінці налаштувань клієнта OAuth на developers.facebook.com


0

Якщо у вашій грі немає сервера / сайту (наприклад, якщо ви розвиваєтесь для Gameroom, як я), додайте " https://apps.facebook.com/xxxxxxxxxxxxxxxxx " (додайте ідентифікатор програми замість "xxxxxxxxxxxx") у "Дійсні URI-адреси перенаправлення OAuth ".


-1

Більшість відповідей стосуються додавання URL-адреси до домену додатка, але, працюючи в компанії, у вас немає такого доступу. Для цього можна обійти це, просто зробивши віртуальний хост і зробивши запис хоста.


додайте це у файл хосту (/ etc / hosts) 127.0.0.1 www.your_domain.com

створити віртуальний хост. Я використовував це для віртуального хоста apache

Webmaster ServerAdmin @ localhost ServerName www.your_domain.com

    ProxyPass / http://localhost:5006/
    RewriteMap  lc int:tolower
    LogLevel debug

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.