Odpowiedzi:
Edycja: 2-15-2012 Jak używać uwierzytelniania FB dla witryny typu localhost.
Uważam, że skonfigurowanie drugiej aplikacji na Facebooku jest bardziej skalowalne i wygodne. Jeśli tworzę aplikację MyApp, utworzę drugą o nazwie MyApp-dev.
Website
wyboru w sekcji „Wybierz sposób integracji aplikacji z Facebookiem” (w najnowszej wersji Facebooka można to znaleźć w sekcji Ustawienia> Podstawowe> Dodaj platformę - Następnie wybierz witrynę internetową)if Rails.env == 'rozwój' || Rails.env == 'test' Rails.application.config.middleware.use OmniAuth :: Builder dostawca: facebook, „DEV_APP_ID”, „DEV_APP_SECRET” koniec jeszcze # Produkcja Rails.application.config.middleware.use OmniAuth :: Builder dostawca: facebook, „PRODUCTION_APP_ID”, „PRODUCTION_APP_SECRET” koniec koniec
Wolę tę metodę, ponieważ po jej skonfigurowaniu współpracownicy i inne komputery nie mają dodatkowej konfiguracji.
Oczywiście możesz, po prostu dodaj adres URL localhost (bez „http”) w swojej domenie_aplikacji, a następnie dodaj adres_url http://localhost
(z http)
Aktualizacja
Facebook zmień teraz trochę rzeczy, po prostu przejdź do ustawień aplikacji i w adresie URL witryny po prostu dodaj http: //localhost
i pozostaw domenę aplikacji pustą
UWAGA: Od 2012 roku Facebook umożliwia rejestrację „localhost” jako zwrotnego adresu URL. Nadal możesz potrzebować podobnego obejścia dla innych dostawców (np. Firmy Microsoft).
Jeśli potrzebujesz prawdziwej nazwy domeny zarejestrowanej na Facebooku (np. My.really.own.domain.com), możesz lokalnie przekierowywać żądania do tej domeny na swój komputer. Najłatwiejszym rozwiązaniem w dowolnym systemie operacyjnym jest zmiana pliku „hosts” w celu zmapowania domeny na 127.0.0.1 (patrz http://technet.microsoft.com/en-us/library/bb727005.aspx#EDAA i https: / /serverfault.com/questions/118290/cname-record-alias-in-windows-hosts-file ).
Zwykle używam do tego programu Fiddler (w systemie Windows z lokalnymi usługami IIS) - zobacz przykłady na stronie http://www.fiddler2.com/Fiddler/Dev/ScriptSamples.asp .
if (oSession.HostnameIs("my.really.own.domain.com")) {
oSession.host="localhost:80";
}
Podejście oparte na plikach hostów nie działa z programem Visual Studio Development Server, ponieważ wymaga, aby przychodzące adresy URL były localhost / 127.0.0.1. Jeśli musisz pracować z tym (lub prawdopodobnie z IIS Express), aby zastąpić hosta - Korzystanie z programu Fiddler z IIS7 Express
Dzięki nowemu centrum rozwoju jest teraz łatwiejsze:
1) Pozostaw domeny aplikacji puste.
2) Kliknij Dodaj platformę.
3) Adres URL witryny powinien odpowiadać pełnej ścieżce twojego lokalnego hosta.
4) Zapisz zmiany
Właśnie znalazłem obejście: Możesz udostępnić swoją maszynę lokalną za pomocą http://localtunnel.com . Będziesz musiał (tymczasowo) zmienić niektóre adresy URL używane w kodzie aplikacji / html, aby linki wskazywały domenę tymczasową, ale przynajmniej Facebook może dotrzeć do twojego komputera.
W podstawowych ustawieniach aplikacji ( https://developers.facebook.com/apps ) w obszarze Ustawienia-> Podstawowe-> Wybierz sposób integracji aplikacji z Facebookiem ...
Użyj opcji „URL witryny” i „URL witryny mobilnej:”, aby przechowywać odpowiednio produkcyjny i rozwojowy adres URL. Obie witryny będą mogły uwierzytelniać się. Używam tylko Facebooka do uwierzytelniania, więc nie potrzebuję żadnych funkcji przekierowywania witryn mobilnych. Zwykle zmieniam adres „Mobile Site URL:” na moją witrynę „localhost: 12345” podczas testowania uwierzytelniania, a po zakończeniu ustawiam go z powrotem na normalny.
Jest ! Moje rozwiązanie działa, gdy tworzysz aplikację, ale chcesz korzystać z uwierzytelniania Facebooka w swojej witrynie. Poniższe rozwiązanie NIE jest potrzebne, gdy chcesz stworzyć aplikację zintegrowaną ze stroną FB.
Chodzi o to, że nie możesz umieścić „localhost” jako domeny na stronie konfiguracji Facebooka swojej aplikacji. Względy bezpieczeństwa ?
Musisz przejść do pliku hosta w systemie OSX / Linux etc / hosts i dodać następujący wiersz: 127.0.0.1 dev.yourdomain.com
Domena, którą stawiasz, co chcesz. Jednym błędem jest dodanie tej linii: localhost dev.twojadomena.com (przynajmniej na osx snow leopard w nie działa).
Następnie musisz wyczyścić pamięć podręczną DNS. W systemie OSX: wpisz w terminalu dscacheutil -flushcache . Na koniec wróć do internetowej witryny programistów Facebooka i na stronie konfiguracji swojej aplikacji możesz dodać domenę „dev.yourdomain.com”.
Jeśli używasz programu takiego jak Mamp, Easyphp lub cokolwiek innego, upewnij się, że port dla Apache to 80.
To rozwiązanie powinno działać w systemie Windows, ponieważ zawiera również plik hosts. Niemniej jednak, o ile pamiętam, Windows 7 nie używa już tego pliku, ale ta sztuczka powinna zadziałać, jeśli znajdziesz sposób, aby zmusić system Windows do korzystania z pliku hosts.
Musisz wybrać `` logowanie na Facebooku '' do produktu Facebook i włączyć logowanie klienta OAuth, `` logowanie OAuth w sieci Web '' i `` logowanie OAuth wbudowanej przeglądarki '', nawet jeśli podasz adres URL lokalnego hosta To zadziała
działa to w czerwcu 2018 r., nawet po spełnieniu wymagań protokołu HTTPS. Wygląda na to, że aplikacja testowa nie wymaga https:
stwórz aplikację testową: https://developers.facebook.com/docs/apps/test-apps/
następnie w aplikacji testowej wykonaj proste czynności z tego filmu: https://www.youtube.com/watch?v=7DuRvf7Jtkg
Myślę, że powinieneś być w stanie tworzyć aplikacje przy użyciu serwera WWW Visual Studio Development: Uruchom nową aplikację FaceBook na: http://www.facebook.com/developers/ . Następnie ustaw ustawienia adresu URL witryny i adresu URL kanwy na uruchomioną instancję witryny internetowej, na przykład: http: // localhost: 1062 /
Oto kilka linków, które powinny pomóc Ci rozpocząć pracę z FaceBookiem:
Mam nadzieję że to pomoże.
Spróbuj tego ---
https://www.facebook.com/help/community/question/?id=589302607826562
1 - Kliknij opcję Aplikacje, a następnie wybierz swoją aplikację.
2 - Kliknij przycisk Ustawienia po lewej stronie ekranu.
3 - W ustawieniach podstawowych kliknij przycisk Dodaj platformę poniżej konfiguracji ustawień.
4 - Wybierz opcję Witryna w oknie dialogowym platformy.
5 - Wpisz swój adres URL (działa tutaj localhost).
6 - W polu tekstowym Domeny aplikacji dodaj domenę, która jest zgodna z domeną w adresie URL.
7 - Zapisz swoje ustawienia.
Załóżmy, że zarejestrowałeś swoją aplikację jako:
app.domain.com
Wystarczy zmodyfikować plik / etc / hosts, dodając
127.0.0.1 dev01.app.domain.com
Następnie zmodyfikuj konfigurację Apache
ServerName dev01.app.domain.com
i zrestartuj Apache.
Musisz umieścić swój adres URL w zmiennej, aby używać go jako parametru XML w niektórych wywołaniach:
<fb:login-button registration-url="http://<?=$URL?>/register" />
Nie mam wystarczających uprawnień, aby skomentować najczęściej głosowaną odpowiedź, ale przynajmniej w moim środowisku railsowym (z systemem 4) rails s są ustawione na http://localhost:3000
, nie http://www.localhost:3000
. Kiedy zmieniłem to na http://localhost:3000
, działało dobrze. Nie ma potrzeby edytowania żadnego pliku hosts.
Moje rozwiązanie działa dobrze na serwerze lokalnym ..... Do korzystania z
adresów URL witryny http://localhost/
i do domen aplikacji localhost/folder_name
Reszta wszystko jest takie samo ....... działa dobrze (chociaż pokazuje czerwoną flagę w domenie aplikacji ... aplikacja działa dobrze)
Aplikacja będzie działać dobrze na localhost: 3000, wystarczy podać adres https, na którym aplikacja będzie działać, gdy będzie w trybie produkcyjnym.
Opcja 2 to podanie adresu URL lub witryny heroku, która umożliwia przykładową aplikację w trybie produkcyjnym.
Najnowsza aktualizacja: nie musisz podawać żadnych adresów URL, jeśli testujesz go w fazie rozwoju. Możesz pozostawić pola puste. Upewnij się, że Twoja aplikacja jest w trybie programistycznym. Jeśli nie, wyłącz status z transmisji na żywo.
Nie ma potrzeby podawania adresu URL witryny, domen aplikacji ani prawidłowego adresu URI przekierowania.