Planuję połączyć się z czatem na Facebooku z mojego lokalnego hosta. Będę potrzebował klucza sesji z Facebooka. Kiedy podam adres URL witryny jako localhost:8080
lub ip-address:8080
nie działa.
Czytałem o konfigurowaniu dwóch aplikacji z 2 różnymi kluczami API, jeden działa na dev m / c, a drugi na localhost, ale nie do końca to rozumiem.
Czy ktoś może wyjaśnić, jak uruchomić aplikację Facebook na hoście lokalnym?
facebook
localhost
facebook-chat
entuzjastyczny
źródło
źródło
Odpowiedzi:
Jakiś czas temu napisałem o tym poradnik .
Najważniejszym punktem jest „URL witryny”:
Gdzie struktura folderów jest podobna do:
EDYCJA:
Kavya : w jaki sposób serwer FB rozpoznaje mojego lokalnego hosta nawet bez adresu IP lub portu?
Nie sądzę, że ma to coś wspólnego z Facebookiem, myślę, że ponieważ
src
parametr iframe jest ładowany po stronie klienta, będzie traktował lokalny adres URL tak, jakbyś umieścił go bezpośrednio w przeglądarce.Na przykład miej plik na swoim serwerze online z zawartością (np.
online.php
):A w katalogu głównym hosta lokalnego umieść plik
test.php
:Teraz odwiedź
http://your_domain.com/online.php
, zobaczysz zawartość pliku localhost!Dlatego subskrypcje w czasie rzeczywistym i cofanie autoryzacji wywołań zwrotnych (żeby wspomnieć) nie będą działać z adresami URL lokalnego hosta! ponieważ Facebook będzie pingował (wysyła żądania http) do tych adresów URL, ale oczywiście serwer Facebooka nie przetłumaczy tych adresów URL na twoje!
źródło
http://localhost:8080/auth/index.html
a strona, która wyświetla błąd, to,http://localhost:8080/auth/index.html
a wiersz channelurl to:channelUrl : '//localhost:8080/auth/channel.html',
jeśli używasz localhost:
w Facebook -> Ustawienia -> Podstawowe, w polu „Domeny aplikacji” wpisz „localhost”, a następnie kliknij „+ Dodaj platformę” wybierz „Witryna internetowa”,
utworzy dwa pola „URL witryny mobilnej” i „URL witryny”, w polu „URL witryny” wpisz ponownie „localhost”.
pracuje dla mnie.
źródło
Możesz także edytować plik „hosts” i tworzyć lokalną odmianę swojej domeny.
Przykład
Jeśli Twój prawdziwy adres aplikacji Facebook to „example.com”, możesz utworzyć domenę „localhost.example.com” (dostępną tylko z Twojego komputera) w pliku „hosts” wskazującą na „localhost” i uruchomić lokalną witrynę internetową w tej domenie. W ten sposób możesz oszukać Facebooka.
źródło
C:/Windows/System32/drivers/etc/hosts
systemie Windows 7 w systemie Ubuntu lub w systemie Ubuntu pod adresem/etc/hosts
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:” do przechowywania produkcyjnych i programistycznych adresów 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.
źródło
2013 sierpień. Facebook nie zezwala na ustawienie domeny z portem dla aplikacji, na przykład „localhost: 3000”.
Możesz więc użyć https://pagekite.net do tunelowania swojej
localhost:port
domeny do właściwej domeny.Programiści Rails mogą korzystać z http://progrium.com/localtunnel/ za darmo.
źródło
Więc dzisiaj to zadziałało. Mój adres URL to
http://localhost:8888
. Domena, którą podałem Facebookowi, to localhost. Myślałem, że to nie działa, ponieważ próbowałem pobrać dane za pomocą tejFB.api
metody. Ciągle otrzymywałem „niezdefiniowaną” nazwę i obraz bez źródła, więc zdecydowanie nie miałem dostępu do wykresu.Później zdałem sobie sprawę, że mój problem polegał na tym, że przekazałem tylko pierwszy argument
/me
doFB.api
, a nie miałem tokena. Musisz więc użyćFB.getLoginStatus
funkcji, aby uzyskać token, który należy dodać do/me
argumentu.źródło
po prostu określ adres URL kanwy jako http: // localhost / ścieżka_aplikacji .
źródło
Ok, nie jestem pewien, o co chodzi z tymi odpowiedziami, ale dam ci znać, co zadziałało, zgodnie z zaleceniami mojego starszego programisty. Pracuję w Ruby on Rails i używam kodu JavaScript Facebooka, aby uzyskać tokeny dostępu.
Problem: Aby przeprowadzić uwierzytelnianie, Facebook pobiera adres URL z paska adresu i porównuje go z tym, co ma w pliku. Nie pozwalają ci używać
localhost:3000
z jakiegokolwiek powodu. Możesz jednak użyć całkowicie wymyślonej nazwy domeny, na przykładyoursite.dev
uruchamiając lokalny serwer i wskazującyoursite.dev
na127.0.0.1:3000
lub gdziekolwiek wskazywał twój lokalny host.Krok 1 : Zainstaluj lub zaktualizuj Nginx
$ brew install nginx
(zainstaluj) lub$ brew upgrade nginx
(zaktualizuj)Krok 2 : Otwórz plik konfiguracyjny nginx
/usr/local/etc/nginx/nginx.conf
(zwykle tutaj)/opt/boxen/config/nginx/nginx.conf
(jeśli używasz Boxen)Krok 3 Dodaj ten fragment kodu do swojego
http {}
blokuZamień na
proxy_pass
gdziekolwiek chcesz wskazaćyoursite.dev
. W moim przypadku była to zamiana localhost: 3000 lub odpowiednik127.0.0.1:3000
Krok 4 : Edytuj plik hosts
/etc/hosts
na komputerze Mac, aby dołączyćTen plik kieruje domeny do localhost. Nginx nasłuchuje na hoście lokalnym i przekierowuje, jeśli pasuje do reguły.
Krok 5 : Za każdym razem, gdy korzystasz ze środowiska deweloperskiego, używasz
yoursite.dev
w pasku adresu zamiast,localhost:3000
aby Facebook logował Cię poprawnie.źródło
Forward to świetne narzędzie pomagające w lokalnym rozwoju aplikacji Facebooka, obsługuje SSL, więc pewna rzecz nie stanowi problemu.
https://forwardhq.com/in-use/facebook
ZRZECZENIE SIĘ: Jestem jednym z deweloperów
źródło
Musisz skonfigurować swoją aplikację tak, aby działała przez https dla localhost
Możesz wykonać kroki podane w tym, aby skonfigurować HTTPS na Ubuntu
https://www.digitalocean.com/community/articles/how-to-create-a-ssl-certificate-on-apache-for-ubuntu-12-04
Musisz wykonać następujące czynności:
zainstaluj apache (jeśli nie masz)
Krok pierwszy - aktywuj moduł SSL
Krok drugi - utwórz nowy katalog
Krok trzeci - utwórz certyfikat SSL z podpisem własnym
Za pomocą tego polecenia utworzymy samopodpisany certyfikat SSL i klucz serwera, który go chroni, i umieścimy oba z nich w nowym katalogu. Najważniejszym wierszem jest „Common Name”. Wpisz tutaj swoją oficjalną nazwę domeny lub, jeśli jeszcze jej nie masz, adres IP swojej witryny.
Krok czwarty - Skonfiguruj certyfikat
Znajdź następujące wiersze i edytuj je za pomocą swoich ustawień
Krok piąty - aktywuj nowy wirtualny host
źródło
Sztuczka:
Skorzystaj z MAMPPRO i utwórz: nazwa serwera: DOKŁADNY adres Twojej witryny (np .: helloworld.com) do Twojej witryny na dysku
Na Facebooku: możesz więc zachować oryginalny adres URL witryny (np. Helloworld.com)
Teraz rozumiesz, że kiedy wpisujesz swoją witrynę na pasku adresu, jesteś lokalnie ! .. a kiedy chcesz być online, po prostu wyłącz serwer na MAMP PRO ..
:)
źródło
Żadna z powyższych odpowiedzi nie zadziałała dla mnie. Korzystam z FB API 2.5. Moja była kombinacją problemów, które po rozwiązaniu doprowadziły do sukcesu
Prawdopodobnie nie jest to idealne rozwiązanie jako zmiana dynamicznego adresu IP i prawdopodobnie można by użyć DynDNS lub czegoś podobnego, aby uczynić adres IP bardziej „statycznym”, ale zadziałało to dla mnie
źródło
W moim przypadku problemem okazało się blokowanie przez chrome żądania CORS z localhost: 4200 do strony facebook api. Uruchamianie Chrome z tym ustawieniem: „YOUR_PATH_TO_CHROME \ Google \ Chrome \ Application \ chrome.exe” --disable-web-security --user-data-dir = "c: / chrome działało jak urok podczas programowania. Nawet bez lokalnego hosta dodano do ustawień aplikacji na Facebooku.
źródło