Piszę grę na Facebooka używając Railsów i jQuery. Odkąd zacząłem używać Facebook Javascript SDK, używanie localhost jako domeny aplikacji wydawało się działać dobrze. Mogłem przetestować swoją grę lokalnie i na Heroku.
Wygląda na to, że w zeszłym dniu Facebook dokonał dużej aktualizacji swojego interfejsu programisty. Teraz, jeśli dodam localhost jako domenę aplikacji, otrzymam następujący błąd:
Musi to pochodzić z adresu URL kanwy, adresu URL bezpiecznego kanwy, adresu URL witryny, adresu URL witryny mobilnej, adresu URL karty strony lub adresu URL karty bezpiecznej strony. Sprawdź i popraw następujące domeny: localhost
Moja gra również nie działa teraz lokalnie i pojawia się błąd, gdy Javascript SDK loguje się do użytkownika:
Kod błędu interfejsu API: 191 Opis błędu interfejsu API: podany adres URL nie jest własnością aplikacji. Komunikat o błędzie: Nieprawidłowe redirect_uri: Podany adres URL nie jest dozwolony w konfiguracji aplikacji.
Nie dzieje się tak podczas wdrażania gry, ponieważ herokuapp.com jest uważana za prawidłową domenę aplikacji.
Jak mam opracować i przetestować swoją grę, jeśli nie mogę już używać localhost lub 127.0.0.1?
źródło
Odpowiedzi:
Wydaje się, że protokół ciągle się zmienia, a zaakceptowana odpowiedź nie zadziałała dla mnie dzisiaj. Na wypadek, gdyby pomogło to innym wyszukiwarkom, to zadziałało w moim przypadku:
1.) W środku, pod pierwszym polem opcji, kliknij „+ Dodaj platformę” i wybierz „Witryna” (lub cokolwiek, co jest odpowiednie dla Twojej aplikacji).
2.) W oknie, które pojawia się dla właśnie dodanej witryny: Adres URL witryny:
http://localhost:3000/
3.) W polu powyżej (Ustawienia => Podstawowe): Domena aplikacji:
localhost
4.) W prawym dolnym rogu kliknij „Zapisz zmiany”
5.) Upewnij się, że identyfikator aplikacji został poprawnie skopiowany i wklejony do kodu. (Identyfikator znajduje się w pierwszym polu na tej stronie, jeśli potrzebujesz go ponownie).
źródło
localhost
ponieważ wcześniej to nie działało. Dzięki za dobrą odpowiedź.źródło
Nadal możesz przetestować swoją aplikację bez wdrażania jej na zdalnym serwerze, takim jak heroku. Sztuczka polega na zaktualizowaniu
etc/hosts
pliku w ten sposób:Następnie w ustawieniach aplikacji Facebook wpisz [ http: //] moja_domena.com, bez „[” i „]”
U mnie to zadziałało
źródło
Dla każdego, kto bawi się tym w 2017 roku. Interfejs ponownie się zmienił. Chciałem skomentować to odpowiedź, ale nie mam wystarczającej reputacji. Adres URL hosta lokalnego Twojej aplikacji należy teraz skopiować do trzech miejsc. Obecnie (26 października 2017) kolejność jest następująca:
1.) Kliknij „Ustawienia” w lewym menu.
2.) W środku, pod pierwszym polem opcji, kliknij „+ Dodaj platformę” i wybierz „Witryna” (lub cokolwiek, co jest odpowiednie dla Twojej aplikacji).
3.) W oknie, które pojawi się dla właśnie dodanej witryny, skopiuj adres URL witryny lokalnego hosta (np. Http: // localhost: 3000 / )
4.) W polu powyżej „Domena aplikacji” skopiuj ten sam adres URL
5.) W prawym dolnym rogu kliknij „Zapisz zmiany”
6.) W menu po lewej stronie w sekcji „Produkty” kliknij „Zaloguj się na Facebooku” (lub dodaj za pomocą opcji „+ Dodaj produkty”, jeśli nie jest dostępna)
7.) Jesteś teraz w ustawieniach logowania na Facebooku. Skopiuj ten sam adres URL do pola „Valid OAuth redirect URIs”
To powinno działać.
źródło
Wystarczy dodać localhost jako adres URL kanwy lub adres URL witryny mobilnej, dzięki czemu w ustawieniach domeny aplikacji będziesz mieć zarówno localhost, jak i herokuapp.com. Gdy aplikacja będzie już produkowana, po prostu ją usuń.
źródło
To jest zły sposób. Musisz utworzyć aplikację testową za pomocą zakładki Test w ustawieniach aplikacji. Następnie możesz wprowadzić adres URL etapu rozwoju (na przykład localhost) do swojej aplikacji.
źródło
Rozwiązanie wykorzystujące Firebase
Aby to działało
localhost
, port3000
wykonałem następujące czynności:localhost
do domen aplikacjihttp://localhost:3000/
do adresu URL witryny, wybierając opcję „+ Dodaj platformę”Do tego momentu śledziłem wszystkie poprzednie odpowiedzi przesłane tutaj, ale nic nie działało.
Więc...
W menu po lewej stronie wybierz „Dodaj produkt”
Dodaj „Facebook Login”
Zostanie wyświetlona karuzela przepływu pracy, z domyślną domeną
http://localhost:3000/
, kliknij „kontynuuj” do końca.Wybierz „Facebook Login> Settings” z menu produktu.
Wprowadź swój identyfikator URI przekierowania Firebase OAuth (znaleziony po włączeniu logowania do Facebooka w konsoli Firebase https://console.firebase.google.com , przykład poniżej)
Gotowe.
źródło
Spróbuj użyć adresu URL z portem, np
Miałem ten sam problem i właśnie znalazłem to rozwiązanie.
źródło
To działa dla mnie w heroku, rzecz localhost nie działa (dla mnie). Mam nadzieję, że to pomoże
1.) W środku, pod pierwszym polem opcji, kliknij „+ Dodaj platformę” i wybierz „Witryna” (lub cokolwiek, co jest odpowiednie dla Twojej aplikacji).
2.) W oknie, które pojawi się dla właśnie dodanej witryny: Adres URL witryny: http://MYAPP.herokuapp.com/ (zastąp MYAPP nazwą Twojej aplikacji)
3.) W polu powyżej (Ustawienia => Podstawowe): Domena aplikacji: MYAPP.herokuapp.com (zamień MYAPP na nazwę Twojej aplikacji)
4.) W prawym dolnym rogu kliknij „Zapisz zmiany”
źródło
Tylko uwaga dla innych, którzy mogą mieć z tym problem tak jak ja. Nie udało mi się zmusić tego do działania z aplikacjami „testowymi”. Używając moich aktualnych ustawień aplikacji (i po prostu dodając
do mojego adresu URL płótna) działało tak, jak sugerowali wszyscy inni. Wygląda na to, że aplikacje testowe nie są równe rzeczywistym aplikacjom.
źródło
Wystąpił problem z moją aplikacją Rails, którą zwykle uruchamiam z adresem http: // localhost: 3000, ponieważ Facebook wymaga teraz przekierowania Valid OAuth, aby używać protokołu HTTPS.
Aby używać https lokalnie, użyłem [ngrok] [1], który pozwala na używanie https poprzez zapewnienie tunelu. Aby to zrobić:
źródło
aby przeprowadzić lokalne testy, wystarczy wyłączyć aplikację lub przełączyć aplikację Facebook w tryb programowania. Wtedy Facebook pozwoli ci samemu uzyskać dostęp do aplikacji
źródło
U mnie zadziałało tak:
Konfigurowanie pulpitu nawigacyjnego aplikacji Facebook:
* Na karcie „podstawowe”:
1) Domena aplikacji jest pusta.
2) Kasowanie dowolnej platformy. Znaczenie: brak strony internetowej, brak platformy Canvas. (więc nie ma pola adresu URL witryny do wypełnienia)
* Na karcie „zaawansowane”:
3) Wprowadziłem poprawne identyfikatory URI przekierowań OAuth:
4) jeśli chodzi o mój kod, wstaw mój c: /xampp/htdocs/localhost/myappfolder/index.php (ten plik tworzy loginURL):
wewnątrz pliku redirect.php:
i mam sesję! Wreszcie! nie trzeba się w końcu wieszać: P
źródło