Nazwa domeny aplikacji Facebook podczas korzystania z hosta lokalnego

85

Z samouczka tutaj:
http://ankurm.com/blog/api/using-localhost-for-facebook-app-development/1091/

Próbowałem założyć lokalny obszar rozwoju dla mojej aplikacji na Facebooku. Ale kiedy wstawięhttp: // localhost: 85 / my_app / ” jako nazwę mojej domeny, mówi Facebook

Domeny aplikacji: „ http: // localhost: 85 / nazwa-aplikacji / ” nie powinno zawierać informacji o protokole.

Również po wpisaniu „localhost: 85 / my_app /” jako nazwy mojej domeny pojawia się błąd:

Domeny aplikacji: localhost: 85 / my_app / nie jest prawidłową domeną.

Sanya Tobi
źródło
6
Nie wierzę, że chcesz zaktualizować „domenę aplikacji”, zamiast tego chcesz zaktualizować „URL witryny” znajdujący się pod adresem: Aplikacje> Edytuj aplikację> Ustawienia> Podstawowe> Witryna z logowaniem na Facebooku. Upewnij się, że jest zaznaczone na zielono i pojawi się „URL witryny”. Możesz wpisać http: // localhost - nie musisz określać portu, ale najczęściej określasz protokół.
Luis Perez
1
Nie można ustawić hosta lokalnego do pracy w domenie aplikacji. Ustaw ustawienia zaawansowane | „Prawidłowe identyfikatory URI przekierowania OAuth” na adres URL hosta lokalnego (http: // localhost: port #). Zobacz github.com/tschellenbach/Django-facebook/issues/376
Joe,
Należy również pamiętać, że domena aplikacji musi być localhost, aby zaakceptowała domenę. Próbowałem z mysite.local i nie działało. Zmieniony, Site URL to http://localhost:85/a App Domains to http://localhost:85/następnie zapisany (zmodyfikowana przez FB domena aplikacji), aby działał.
James Lock,
Coś jeszcze do wypróbowania: „W ustawieniach klienta OAuth, gdzie jest napisane Użyj trybu ścisłego dla identyfikatorów URI przekierowania, upewnij się, że jest ustawiona na Nie, a kliknięcie zapisz.” - wp-native-articles.com/blog/news/…
eflat
Wymaganie HTTPS do logowania na Facebooku. Nadal będziesz mógł używać protokołu HTTP z adresami „localhost”, ale tylko wtedy, gdy Twoja aplikacja jest nadal w trybie programowania. developers.facebook.com/blog/post/2018/06/08/…
yadavr

Odpowiedzi:

58

Moje rozwiązanie:

  1. Pozostaw domeny aplikacji puste
  2. (Produkty) Logowanie do Facebooka> Ustawienia
  3. Dodaj http://localhost:85/my_app/do Valid OAuth redirect URIspudełka
  4. Zapisz zmiany
dkonayuki
źródło
6
@ Matt Long: Nie znalazłem pola Prawidłowe identyfikatory URI przekierowania OAuth. Czy zostało ono usunięte?
Julian
@MattLong thanks! Mam to działające dzięki rozwiązaniu Supasates.
Julian
1
Pracował dla mnie! (Luty 2018)
Daniel mówi Przywróć Monikę
18.10.2020 Otrzymuję ostrzeżenie „ Przekierowania do hosta lokalnego są automatycznie dozwolone tylko w trybie programistycznym i nie trzeba ich tutaj dodawać”.
Kick Buttowski
55

Wygląda na to, że protokół został zmieniony.

Oto moje rozwiązanie (testowałem 3 kwietnia 2015 i działa dobrze):

W Ustawieniach -> zakładka Podstawowe

  1. Domena aplikacji: localhost
  2. Kliknij „ + Dodaj platformę ” i wybierz „ Witryna
  3. Adres URL witryny: http: // localhost: <port> / ( <port> to Twój numer portu)
  4. Zapisz zmiany
Supasate
źródło
3
nie działa, s32.postimg.org/4qazo1sl1/ ...
shershen
4
Dziękuję Ci! To zadziałało dla mnie (maj 2016). Uwaga, 127.0.0.1 nie działa.
Milad M
Pracował dla mnie czerwiec 2017
Alaksandar Jesus Gene
Pracuje! Grudzień 2017
Pandarian Ld
44
  1. Pozostaw domeny aplikacji puste
  2. Przejdź do witryny z logowaniem na Facebooku
  3. Dodaj http://localhost:port_number/
  4. Zapisz zmiany i spróbuj ponownie. po więcej informacji odwiedź

http://developers.facebook.com/docs/samples/canvas/ Miłego kodowania :-)

PO POŁUDNIU
źródło
3
developers.facebook.com/docs/opengraph/getting-started - prawdopodobnie bardziej odpowiednie
fflyer05
7
Nie można ustawić hosta lokalnego do pracy w domenie aplikacji. Ustaw ustawienia zaawansowane | „Poprawne identyfikatory URI przekierowania OAuth” na adres URL hosta lokalnego (http: // localhost: port #). Zobacz github.com/tschellenbach/Django-facebook/issues/376
Joe,
2
Co oznacza „witryna z logowaniem na Facebooku”? Opcja obok „Domeny aplikacji”? Nie widzę tego. Dodanie wpisu localhost w „Ustawieniach zaawansowanych | Prawidłowe identyfikatory URI przekierowania OAuth” zadziałało
Pierre de LESPINAY
Zrobiłem to, nadal pojawia się błąd: „Podany adres URL jest niedozwolony w konfiguracji aplikacji”
Ram Rachum
1
Działa OK. Chcę tylko skomentować, że działa to tylko z 'localhost', jak w odpowiedzi. Próbowałem z 127.0.0.1:8000 i nie działało
ePi272314
30

To się zmieniło na przestrzeni lat, ale właśnie uruchomiłem go do pracy z aplikacją internetową, którą uruchamiam na hoście lokalnym. Oto co zrobiłem:

  1. Idź do https://developers.facebook.com/apps
  2. Wybierz swoją aplikację.
  3. Wybierz Ustawienia> Podstawowe na lewym pasku nawigacyjnym.
  4. Kliknij przycisk Dodaj platformę u dołu strony.
  5. Kliknij Witryna
  6. Wprowadź http://localhost:8080/adres URL witryny.
  7. Kliknij przycisk Szybki start po prawej stronie wprowadzonego adresu URL witryny.
  8. Otworzy się nowa karta. Na tej karcie przewiń w dół do sekcji „Opowiedz nam o swojej witrynie” i ponownie wprowadź http://localhost:8080/adres URL witryny.
  9. Kliknij przycisk Dalej.
  10. Podjęto próbę zalogowania się ponownie i tym razem zadziałało.

Powodzenia!

10GritSandpaper
źródło
2
jest sposób na użycie dwóch domen? localhost i domena użyta do produkcji: /
JCarlosR
Nie działa: nadal utknęło, adres URL zablokowany: to przekierowanie nie powiodło się, ponieważ identyfikator URI przekierowania nie znajduje się na białej liście w ustawieniach OAuth klienta aplikacji. Upewnij się, że logowanie klienta i sieciowej OAuth jest włączone i dodaj wszystkie domeny aplikacji jako prawidłowe identyfikatory URI przekierowania OAuth.
Nikunj Dhimar
28

Rozwiązanie robocze 2018

Zajęło mi to wieki, zanim to rozgryzłem, więc podzielę się moim rozwiązaniem.

Wypróbowałem wszystkie sugerowane odpowiedzi, ale nic mi nie pomogło i na koniec musiałem tylko wejść na https://developers.facebook.com/apps/YOUR_APP_ID/fb-login/settings/ i dodać pełny adres zwrotny w polu Valid OAuth redirect URIs .

W moim przypadku, używając ruby ​​na szynach, mój adres URL wyglądał tak http://localhost:3000/user/auth/facebook/callback.

I zaraz po dodaniu wszystko zaczęło działać! Mam nadzieję, że pomoże to komuś innemu w obliczu tego problemu.

GuilPejon
źródło
Dziękuję Ci! Zaskakujące jest, że masz idealne, działające rozwiązanie na ten moment! Twoje zdrowie.
nakhodkin
tak dziękuję. To zadziałało dla mnie. Dodałem localhost: 5001 do sekcji: Prawidłowe identyfikatory URI przekierowania OAuth i włączono : Logowanie OAuth w przeglądarce osadzonej
David John Coleman II
To też zadziałało dla mnie. To jest obecnie działające rozwiązanie. Stworzyłem testową wersję mojej aplikacji do logowania na Facebooku z localhost. (Dopóki Facebook ponownie nie zmieni rzeczy!)
Red3
3
Dziękuję Ci! PITA. Po tym, jak to dodałem, pojawiło się to powiadomienie. W marcu wprowadzamy aktualizację zabezpieczeń w ustawieniach aplikacji, która unieważni wywołania z identyfikatorów URI niewymienionych w poniższym polu Prawidłowe adresy URI przekierowania OAuth. Ta aktualizacja jest odpowiedzią na złośliwą aktywność, którą zaobserwowaliśmy na naszej platformie i chcemy chronić Twoja aplikacja lub witryna wymagająca nowego trybu ścisłego dla identyfikatorów URI przekierowań. Wygląda na to, że zaczęły się wcześnie?
dbinott
1
Dzięki! Zajęło mi to również wieki (zanim znalazłem tę odpowiedź). Problem polega na tym, że błąd, który otrzymujesz od FB, sugeruje dodanie domeny do „domen aplikacji”, co nie ma nic wspólnego z rzeczywistym problemem. Dzięki za ponowne zmarnowanie czasu FB :(
Arno van Oordt,
11

To właśnie robiłem.

Jeśli używasz systemu Windows, musisz zmodyfikować plik hosta. Lokalizacja pliku hosta będzie pod adresem%SystemRoot%\System32\drivers\etc\

Dodaj nową linię w pliku hosta w ten sposób

127.0.0.1    localhost.YOUR-SITE-NAME.com

Zapisz plik hosta.

Przejdź do panelu sterowania ustawień aplikacji FB i podaj localhost.YOUR-SITE-NAME.comw polu domeny Apps. Zapisz zmiany.

Teraz załaduj lokalne środowisko, jak localhost.YOUR-SITE-NAME.comz przeglądarki.

NB: zmień NAZWĘ-WITRYNY na nazwę swojej domeny.

kiranvj
źródło
7

Rozwiązanie robocze (sierpień 2018)

Najpierw wybierz swoją aplikację w panelu programisty .

Następnie upewnij się, że aplikacja jest w trybie programistycznym , ponieważ zezwala na hosta lokalnego przez HTTP. Aby to zrobić, kliknij przełącznik znajdujący się w prawym górnym rogu strony aplikacji.

Na koniec należy postępować zgodnie z poniższymi uwagami, ponieważ mogą one powodować problemy, jeśli zostaną nieprawidłowo wypełnione:

  • Settings > Basic > App Domains powinien być pusty
  • Products > Facebook Login > Settings > Valid OAuth Redirect URIs powinien być pusty
aymericbeaumet
źródło
czy nadal działa? Jeśli ustawię aplikację w trybie programowania, otrzymuję błąd białej etykiety.
sagar limbu
1
Mam wersję testową mojej produktywnej aplikacji (zawsze w trybie programistycznym), wyczyściłem wszystkie pola, ale nadal pojawia się błąd: OAuthException URI missmatch
Andreas Richter
Gdy Twoja aplikacja jest w trybie programistycznym, nie możesz testować żadnych punktów końcowych, które wymagają przesłania aplikacji
ricks
Dzięki brachu, tak, to było trudne do zrozumienia
Anthony
5

Można też pozostawić puste lub wykorzystanie localhost, http://localhost:85/my_app/jest adres URL

phwd
źródło
tak, wiem, że to adres URL, ale Dats wot zostało zrobione w samouczku, a on twierdzi, że zadziałało ... dlatego go wypróbowałem ... przy okazji próbowałem też localhost: 85, ale to nie działa, ale kiedy próbowałem localhost tylko to działało ... powodem chciałem użyć: 85 dlatego, że to mój port apache korzysta ...
Sanya Tobi
Port zawiera informacje o protokole, nie potrzebujesz go w tym polu. Jak mówi komunikat: nie powinien zawierać informacji o protokole.
phwd
pozostawienie go pustego załatwiło sprawę. I jeszcze jedna rzecz, której nie akceptuje localhostjako nazwy domeny.
shashwat
3

Kiedy pisałem ten samouczek, port był dozwolony w domenie aplikacji. I faktycznie mogę uruchomić aplikację z portem 81 (serwer wamp). Teraz wygląda na to, że Facebook nie zezwala na przenoszenie adresu URL. Możesz używać localhostw domenie aplikacji.

Zaktualizuję informacje tak szybko, jak to możliwe. Próbuję znaleźć rozwiązanie.

Tymczasowym rozwiązaniem jest użycie lokalnego tunelu http://progrium.com/localtunnel/

Ankur
źródło
2

Przetestowałem to i u mnie działa [luty 2020]:

  1. Zainstaluj ngrok i uzyskaj swój adres URL https (przykład: https://a3asdf23.ngrok.io )
  2. Przejdź do FB App Kokpit Settings (Basic) -> pod App Domains -> dodać https://a3asdf23.ngrok.io, https://ngrok.io.
  3. Na tej samej stronie przewiń do końca w dół, Dodaj platformę (witrynę), ustaw adres URL jako https://a3asdf23.ngrok.io. Jeszcze nie skończyć, kliknij QuickStart -> pod „Opowiedz nam o swojej witrynie” wpisz ten sam adres URL https://a3asdf23.ngrok.io.
  4. Następnie przejdź do Produkty -> Facebook Logowanie -> Ustawienia -> Ustawienia klienta OAuth -> Przekierowanie URI Ważny OAuth -> dodaj te https://a3asdf23.ngrok.io, https://ngrok.io, https://a3asdf23.ngrok.io/{your-redirect-uri}.

I gotowe. Dzięki mi później :)

Yong Ching
źródło
1

Musisz utworzyć tunel, aby udostępnić swój lokalny serwer; Ngrok to najłatwiejszy sposób na zrobienie tego.

55651909-089b-4e04-9408-47c5bf
źródło
1

https://ngrok.com

Przejdź przez link https://ngrok.com/, aby pobrać ngrok i wyodrębnić ten plik. Otwórz cmd (szukaj cmd) Przejdź do katalogu, w którym jest rozpakowywany ngrok. Otwórz ngrok z wiersza poleceń, np .: c: /ngrok/ngrok.exe [port] lub cd c: / ngrok, a następnie ngrok 80 (ngrok [port]) Otrzymasz

ngrok

Tunnel Status                 online
Version                       1.3/1.3
Forwarding                    http://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Forwarding                    https://3ahsdfhska.ngrok.com -> 127.0.0.1:80
Web Interface                 http://127.0.0.1:4040
# Conn                        0
Avg Conn Time                 0.00ms

Nie ZAPOMNIJ upewnić się, że serwer wamp jest otwarty na tym samym porcie… (jak sprawdzić -> goto-> wampicon-> apache-> httpd.conf wyszukaj port lub 80 (domyślnie) użyj tego dla ngrok.exe 80)

http://3ahsdfhska.ngrok.com

będzie adresem URL dostępu do twojego lokalnego hosta online

Abhilash Aruva
źródło
Chciałbym przetestować ngrok w celu przesłania do mojego serwletu. Mój serwlet działa na określonej ścieżce. Na przykład: localhost: 8080 / plugins / servlet Jak mogę poinstruować ngrok, aby tam przerzucił?
Jorge Valois
0

Jeśli otrzymujesz błędy protokołu, musisz nie tylko USUNĄĆ Http: //, ale także jeśli na końcu adresu internetowego znajduje się ukośnik odwrotny, musisz go również usunąć, inaczej nie zadziała. Zrobiłem to i zadziałało idealnie! Holla!

Teresa
źródło
0

Wrzucenie jeszcze jednego roztworu do mieszanki:

Skonfigurowałem witrynę zgodnie z instrukcjami, a następnie dodałem drugą aplikację (Facebook Canvas) i ustawiłem ten adres URL na http://localhost:XXXXX. Teraz mam dostęp do FB zarówno lokalnie, jak i na produkcji.

Matt Cashatt
źródło
0

Rozwijam się lokalnie i używam tego adresu URL: localhost/fb

Następnie musiałem dodać stronę internetową z następującym adresem URL: http://localhost

W obszarze Domeny aplikacji, które dodałem localhost.

Teraz działa. Jedynym problemem, jaki miałem, było to, że musisz używać tego adresu URL we wszystkich swoich skryptach. Na przykład

$loginUrl = $helper->getLoginUrl('http://localhost/fb/login-callback.php', $permissions);

Nie możesz 127.0.0.1tutaj użyć ...

testowanie
źródło
0

Wypróbowałem wszystkie wymienione tutaj rozwiązania, ale żadne z nich nie zadziałało.

Rozwiązaniem mojego problemu było skopiowanie „URI przekierowania OAuth” z firebase do aplikacji Facebook „Prawidłowe identyfikatory URI przekierowania OAuth”

Zostawiłem wszystkie domeny puste

Shaharyar Kirmani
źródło