Zacznę od stwierdzenia, że od dłuższego czasu szukałem odpowiedzi na to pytanie ...
Próbuję skonfigurować Facebook OAuth do pracy z moją aplikacją, która jest rozwijana lokalnie na moim komputerze. Wszystko działało idealnie z autoryzacją Facebooka, dopóki nie przeniosłem się z localhost
innej nazwy domeny (nadal lokalnej na mój komputer). Teraz pojawia się następujący błąd.
Nie można załadować adresu URL: Domena tego adresu URL nie jest uwzględniona w domenach aplikacji. Aby móc załadować ten adres URL, dodaj wszystkie domeny i poddomeny swojej aplikacji do pola Domeny aplikacji w ustawieniach aplikacji.
Plik moich hostów zawiera 127.0.0.1 photovote.dev
(działa idealnie)
Moje przekierowanie w mojej aplikacji (za pomocą Socialite) to http://photovote.dev/auth/facebook/callback
W ustawieniach aplikacji Facebook ...
- moja domena aplikacji to
photovote.dev
- mój adres URL witryny to
http://photovote.dev/
- moje prawidłowe identyfikatory URI przekierowania OAuth to
http://photovote.dev/auth/facebook/callback
Adres URL w momencie komunikatu o błędzie to ...
Brakuje mi problemu ...
Odpowiedzi:
Zwykle dzieje się tak, jeśli podczas tworzenia aplikacji na Facebooku wprowadziłeś nieprawidłowe dane. A może zmieniłeś adresy URL istniejącej aplikacji?
Czy możesz ponownie sprawdzić ustawienia swojej aplikacji na tej stronie?
https://developers.facebook.com/apps
Wybierz odpowiednią aplikację i kliknij przycisk edycji;
Sprawdź, czy adresy URL i ścieżki są poprawnie wprowadzone i wskazują na stronę, na której zainstalowałeś wtyczkę Ultimate Facebook.
źródło
Na wypadek, gdyby ktoś się z tym zetknął i szuka tych ustawień (tak jak ja)
Musisz
Informacje dodatkowe: pamiętaj, aby dodać adres URL wywołania zwrotnego jak
http://localhost:3000
wValid OAuth redirect URIs
polu na stronie ustawień logowania do Facebookaźródło
Valid OAuth Redirect URIs
a dodanie tej wartości pola rozwiązało zły komunikat o błędzie FB związany z aktualizacją twojegoApp Domains
.Miałem ten sam problem. Rozwiązałem go, dodając mój identyfikator URI przekierowania OAuth jako argument do wywołania funkcji getAccessToken:
Jeśli do tej funkcji nie zostanie wysłany żaden argument, zestaw SDK sam generuje identyfikator URI przekierowania, który powinien działać, ale w moim przypadku nie.
Mam nadzieję, że to komuś pomoże.
źródło
Upewnij się, że Twoja aplikacja jest publiczna. Kliknij + Dodaj produkt Teraz przejdź do produktów => Logowanie do Facebooka Teraz wykonaj następujące czynności:
Prawidłowe identyfikatory URI przekierowania OAuth: example.com/
Wycofaj autoryzację oddzwonienia URL: https://example.com/facebookapp
źródło
Deauthorize Callback URL : https://example.com/facebookapp
potrzebny? Czy bez tego będzie działać?Oto, co zrobiłem, aby rozwiązać ten problem:
Gruntownie:
1) Włącz „ Logowanie przy użyciu OAuth przeglądarki ”
2) Wyłącz „ Użyj trybu ścisłego dla identyfikatorów URI przekierowania ” i wprowadź identyfikator URI przekierowania, tak jak to zrobiłem.
3) Pozostaw wszystkie pozostałe opcje bez zmian.
4) Zapisz zmiany.
5) Ciesz się :)
źródło
Miałem ten sam problem i pochodzi z niewłaściwego ID klienta / identyfikatora aplikacji Facebook.
Czy zmieniłeś aplikację Facebook na „publiczną” lub „online”? Facebook tworzy nową aplikację z nowym identyfikatorem aplikacji.
Możesz porównać wartość parametru „client_id” w adresie URL z wartością na pulpicie nawigacyjnym Facebooka.
źródło
Sposób, w jaki to naprawiłem: poszedłem do pola tekstowego URI przekierowania poprawnego OAuth i ustawiłem dokładny adres URL, a nie tylko domenę :
przed:
https://my-website.com
po:
https://my-website.com/facebookoauth/facebooklogin
(adres URL może być inny w Twoim przypadku, sprawdź go w pasku adresu przeglądarki).
Było to spowodowane ustawieniem Use Strict Mode for Redirect URIs, które zostało zablokowane w pozycji Yes.
źródło
Miałem ten problem dzisiaj, uważam, że dokumentacja na Facebooku i SDK są lekceważące i aroganckie wobec innych programistów.
Oprócz posiadania „domen aplikacji” w dwóch różnych lokalizacjach bez dużej ilości informacji (3, jeśli dodasz platformę „internetową”), musisz także przejść do aplikacji / logowania do Facebooka / ustawień i dodać adres URL przekierowania w obszarze Prawidłowe identyfikatory URI przekierowania OAuth
Błąd mówi NIC o ustawieniach oauth.
źródło
Stan na dzień 2017-10.
Rozwiązanie, które rozwiązało mój problem.
Obecnie FB czyni tę niespodziankę.
Ustawienia do dostosowania znajdują się tutaj https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/ .
Końcowy ukośnik jest ważny. Muszą być zgodne w kodzie aplikacji i ustawieniach administratora FB. To jest konfiguracja gdzieś w kodzie (patrz poniżej, jak uzyskać dowolną nazwę domeny dla aplikacji deweloperskiej):
i tu
Aby uzyskać dowolną nazwę domeny dla aplikacji na lokalnym komputerze z systemem Windows, edytuj
host
plik. Nazwy niestandardowe są dobre, aby pozbyć się wszystkich tychlocalhost:8080
,0.0.0.0:30303
,127.0.0.0:8000
, itd. Ponieważ niektóre usługi stron trzecich, takie jak FB, czasami nie pozwalają na używanie127.0.0.0
nazw.W systemie Windows 10
hosts
plik jest tutaj:Utwórz kopię zapasową pliku początkowego, utwórz kopię o innej nazwie (nie działa w natywnym systemie Windows CMD. Używam Git dla Windows , ma wiele poleceń Uniksa)
Dodaj to w
hosts
Aby pozbyć się części portu
:3000
, na przykład skonfiguruj NGINX.źródło
Kliknij tutaj Code Project ! Przykład projektu Code. To działa dla mnie
źródło
Przez większość czasu dzieje się tak, gdy nie wstawia prawidłowego adresu URL przekierowania OAuth w sekcji produktu pulpitu nawigacyjnego FB. Sugeruję postępować zgodnie z poniższymi instrukcjami
01. Sprawdź, czy podstawowe ustawienie aplikacji jest w porządku z poniższym zdjęciem z tobą
02. sprawdź, czy dodałeś produkt
Jeśli nie, możesz łatwo dodać zaloguj się, klikając + sinus, jak pokazuję poniżej.
Jeśli tak, właśnie przejdziemy do ustawień produktu.
03. Sprawdź, czy podałeś prawidłowy adres URL przekierowania OAuth
To proste oznacza, co powinno się po zalogowaniu. Nie jest niczym innym, jak to, że oddzwaniasz URl. Na moim poniższym zdjęciu dodałem kilka adresów URL przekierowań.
źródło
Facebook niedawno wyłączył przycisk przełączania „ Użyj trybu ścisłego dla przekierowań URI ”, więc musisz dodać dokładny identyfikator URI, który jest wywoływany po naciśnięciu przycisku logowania. W moim przypadku było tak, jak pokazano na zrzucie ekranu. To rozwiązało problem dla mnie :)
źródło
Miałem ten sam problem
Właśnie dodałem link do mojego lokalnego adresu http: //localhost/Facebook%20Login%20Test.html do
Site URL
mojego ustawienia aplikacji https://developers.facebook.com/apps .Teraz działa dobrze :) Mam nadzieję, że było to przydatne;)
źródło
W moim przypadku musiałem jedynie włączyć logowanie OAuth w przeglądarce osadzonej
źródło
Nic tak naprawdę dla mnie nie działało, dopóki nie zaktualizowałem używanej wersji zestawu SDK. Zacząłem od 5.0. Nawet 5.4.0 też by nie działało. Kiedy zaktualizowałem do wersji 5.6.2, działało bezbłędnie, mimo że w dziennikach zmian nie było nic istotnego!
źródło
Ta opcja powinna być włączona w portalu:
źródło
Gdyby to pomogło komukolwiek innemu, zaczęło się to zdarzać na starszej stronie, gdy „Prawidłowe URI przekierowania OAuth” stało się obowiązkowe. Witryna nadal używała zestawu SDK PHP V4 i problem został rozwiązany przez aktualizację do zestawu SDK V5.
źródło
W sekcji Domena aplikacji piszesz swoją domenę aplikacji, ale musisz także dodać domenę logowania, tj. Nazwę strony HTML, na której pytasz użytkownika o logowanie. W moim przypadku testowałem to na localhost i trasą logowania był localhost / login, jeśli wstawię tylko http://localhost.com w sekcji domeny aplikacji, otrzymuję ten błąd. Ale po dodaniu http: //localhost/login.com błąd został naprawiony. a także ustawienia aplikacji zmieniły się w nowszej wersji zestawu SDK, w którym nie ma opcji trasy przekierowania OAuth. Musisz przypisać trasę przekierowania bezpośrednio po stronie serwera, po pomyślnym pobraniu tokenu OAuth.
źródło
To działało dla mnie:
Oto najważniejsza rzecz do zrozumienia: Facebook zawsze sprawdza domenę „ WWW ”. Upewnij się więc, że www.twoja_domena.dev działa najpierw w przeglądarce.
Możliwe, że jeśli masz wiele hostów wirtualnych na serwerze lokalnym, niektóre inne hosty wirtualne zastępują „ www.twoja_domena.dev ”. Więc sprawdź to. Apache wybierze PIERWSZĄ definicję domeny (lub portów lub coś w tych kategoriach - nie jestem ekspertem w tej dziedzinie, ale uczę się na błędach). Łatwym szybkim rozwiązaniem tego zastąpienia wirtualnego hosta jest umieszczenie „ www.twoja_domena.dev zastąpienia wirtualnego hosta definicji na samej górze pliku„ httpd-vhosts.conf ”.
Przejdź do „ /apache/conf/https-vhosts.conf ” i umieść to na samej górze pliku:
Dalej: Jeśli używasz systemu Windows, edytuj plik „hosts” w „C: \ Windows \ System32 \ drivers \ etc”, dodając dwa wiersze:
Dalej: Uruchom ponownie serwer Apache i wszystko powinno już działać.
Mam nadzieję, że to ci pomoże i zaoszczędzi Twój czas. Zmarnowałem prawie cały dzień na szukanie w Internecie, wyciągając włosy i nie mogłem znaleźć nic pomocnego, dopóki tego nie znalazłem.
źródło
Miałem ten sam problem ... problem występuje w wersji PHP SDK 5.6.2 i poprawka polegała na edycji następującego pliku:
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
zmień tę linię
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
do
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
źródło
Ten sam błąd na Facebooku przytrafił mi się w środowisku produkcyjnym. Powodem było to, że zarejestrowałem 2 aplikacje na Facebooku (lokalne, produkcyjne), ale na stałe zakodowałem identyfikator aplikacji lokalnej w kodzie źródłowym i zapomniałem go wyłączyć na identyfikator aplikacji produkcyjnej przed wdrożeniem.
Zgodnie z najlepszymi praktykami nie należy zapisywać identyfikatora aplikacji na stałe w kodzie źródłowym, ale jeśli tak, nie należy dopasowywać różnych identyfikatorów aplikacji na Facebooku, jak to zrobiłem.
źródło
Korzystanie z mojego lokalnego serwera.
Wystarczy dodać
http://localhost/my-site
jako adres URL w:https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
pracował dla mnie.
źródło
Problem i odpowiedzi ciągle się zmieniają, gdy FB zaostrza procedurę logowania. Dzisiaj zacząłem otrzymywać ten horror: „Domena tego adresu URL nie jest uwzględniona w domenach aplikacji. Aby móc załadować ten adres URL, dodaj wszystkie domeny i poddomeny swojej aplikacji do pola Domeny aplikacji w ustawieniach aplikacji”.
Odpowiedź brzmiała: teraz FB chce pełnego URI przekierowania. Więc dla mnie, gdzie kiedyś była tylko https://www.example.com , teraz chce https://www.example.com/auth/facebook/callback . Musi to znaleźć się w polu „Prawidłowe identyfikatory URI przekierowania OAuth” (logowanie programisty / Facebooka -> ustawienie)
źródło
Logowanie do Facebooka -> Ustawienia -> Prawidłowe URI przekierowania OAuth -> wstaw domeny swojego adresu przekierowania, pamiętaj, że powinieneś dodać „https” lub http. np. jeśli adres URL przekierowania to https://xxx.xxx.com/path/callback.do , wystarczy wpisać https://xxx.xxx.com/ , jest dla mnie w porządku.
źródło
pierwszy krok: użyj całego adresu URL certyfikatu https://example.in lub ssl, nie używaj http://example.in
drugi krok: ustawienie aplikacji faceboook-> ustawienie podstawowe-> dodaj swoją domenę lub subdomenę
trzeci krok: ustawienie logowania do aplikacji faceboook-> Prawidłowe identyfikatory URI przekierowania OAuth-> dodaj swój adres URL przekierowania po zalogowaniu
czwarty krok: ustawienie aplikacji faceboook-> ustawienia zaawansowane-> Menedżer domeny-> dodaj swoją nazwę domeny
wykonaj ten krok, a następnie użyj identyfikatora aplikacji, wersji aplikacji, tajnej aplikacji do konfiguracji
źródło
w rozszerzeniu Loginu społecznościowego Magento 2 musisz skopiować prawidłowe identyfikatory URI przekierowania OAuth z panelu i dodać link do pola Prawidłowe identyfikatory URI przekierowania OAuth na stronie Ustawienia OAuth klienta na developers.facebook.com
źródło
Jeśli twoja gra nie ma serwera / strony (np. Jeśli tworzysz dla Gameroom jak ja) - dodaj „ https://apps.facebook.com/xxxxxxxxxxxxxxxxx ” (wstaw identyfikator aplikacji zamiast „xxxxxxxxxxxx”) do „Prawidłowych identyfikatorów URI przekierowania OAuth „.
źródło
Większość odpowiedzi dotyczy dodawania adresu URL do domeny aplikacji, ale pracując w firmie, nie masz do nich dostępu. W tym celu możesz to obejść, po prostu tworząc wirtualny host i wprowadzając wpis hosta.
dodaj to do pliku hosta (/ etc / hosts) 127.0.0.1 www.twoja_domena.com
Utwórz wirtualny host. Użyłem tego do wirtualnego hosta Apache
ServerAdmin webmaster @ localhost NazwaSerwera www.twoja_domena.com
źródło