Rozwój Facebooka w localhost

177

Chciałem tylko wiedzieć, czy jest jakiś sposób, bym mógł tworzyć aplikacje Facebooka na hoście lokalnym.

Abhishek
źródło

Odpowiedzi:

246

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.

  • Utwórz nową aplikację na https://developers.facebook.com/apps
  • (Nowość 15.02.2012) Kliknij pole Websitewyboru 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ą)
  • Ustaw pole URL witryny ( NIE pole App Domains ) na http: //www.localhost: 3000 (ten adres dotyczy Ruby on Rails, zmień w razie potrzeby)

wprowadź opis obrazu tutaj

  • W inicjatorze aplikacji wprowadź kod, aby wykryć środowisko
    • Przykładowy kod Rails 3
      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.

Eric Hu
źródło
3
+1ed To dziwne! Ludzie mówią, że nie możesz dodać lokalnego hosta jako adresu URL aplikacji. Ale dla mnie to po prostu działa. Dziękuję Ci!
Keyne Viana,
15
Czy to nadal dotyczy Ciebie? Wydaje się, że nie mogę dodać localhost, 127.0.0.1:5000 lub niczego podobnego do domeny mojej aplikacji na Facebooku.
Pete
Właśnie próbowałem utworzyć nową i napotkałem problem z „nieprawidłową domeną”. Dzięki za haczyk
Eric Hu
1
@zoltarSpeaks Zobacz moją zaktualizowaną odpowiedź. Musisz użyć innego pola, a nie „domeny aplikacji”
Eric Hu,
1
czy to zastąpi config.omniauth: facebook, 'APP_KEY', 'APP_SECRET',: scope => "email, offline_access .."?
zniknął
26

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: //localhosti pozostaw domenę aplikacji pustą

Stalin
źródło
To całkowicie działa. Po naszej stronie ogrodzenia nic nie jest potrzebne.
godspeedelbow
10
To już nie działa, pojawia się błąd, nie można dodać domen najwyższego poziomu
Josh Bedo
20

Oto moja konfiguracja i działa dobrze dla PHP API:

domena aplikacji

   http://localhost

Strona URL

   http://localhost:8082/
w obrocie
źródło
1
musiał wypełnić oba te pola tekstowe, aby host
lokalny
19

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

Alexei Levenkov
źródło
9

Facebook nie zezwalał już na adres URL wywołania zwrotnego „localhost” dla aplikacji Facebook FBML

Sudantha
źródło
upewnij się, że w ustawieniach bezpieczeństwa na Facebooku masz wyłączone „Bezpieczne przeglądanie”. Spowoduje to, że twój localhost będzie niedostępny, jeśli jest włączony.
supajb
9

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

JSV
źródło
1
Zweryfikowano, że jest to najlepszy sposób na instalację hosta lokalnego. Po prostu wstaw podstawowy adres URL w swoim środowisku programistycznym, jak wyżej - bez http: //, a Facebook doda go za Ciebie. Proste rzeczy! Dzięki Jay
keade
1
To rozwiązanie rozwiązało mój problem podczas pracy na hoście lokalnym
Rola
8

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.

Martin T.
źródło
7

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.

Carter Medlin
źródło
5

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.

Martin L.
źródło
działa dla win8.1 c: \ windows \ system32 \ drivers \ etc \ hosts. Możesz potrzebować opróżnienia 'Host resolver cache' w chrome URL = chrome: // net-internals / # dns
rnrneverdies
5

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 wprowadź opis obrazu tutaj

Abhinav bhardwaj
źródło
Pomogło to rozwiązać problem. Wiadomość z FB z dnia 23.02.2018 r .: 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ść widzieliśmy na naszej platformie i chcemy chronić Twoją aplikację lub witrynę, wymagając nowego trybu ścisłego dla przekierowań URI.
Tim Tyler,
1
Fb wymaga teraz protokołu HTTPS do wywołania zwrotnego. Lokalny host nie obsługuje protokołu HTTPS.
huuthang
1
@huuthang, więc całe pytanie / odpowiedzi jest przestarzałe.
RGB
3

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:

  1. http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development/ ,
  2. http://nagbaba.blogspot.com/2010/05/experiencing-facebook-javascript-sdk.html ,
  3. http://apps.facebook.com/thinkdiffdemo/

Mam nadzieję że to pomoże.

Vasile Laur
źródło
3

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.

Snm Maurya
źródło
2

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" />
Juan Eduardo Castaño Nestares
źródło
2

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.

Andrew Shenstone
źródło
2

app domain : localhost

site URL : http://localhost:4440/

pracował dla mnie z nowym interfejsem użytkownika.

sftsz
źródło
0

Moje rozwiązanie działa dobrze na serwerze lokalnym ..... Do korzystania z adresów URL witryny http://localhost/ i do domen aplikacji localhost/folder_nameReszta wszystko jest takie samo ....... działa dobrze (chociaż pokazuje czerwoną flagę w domenie aplikacji ... aplikacja działa dobrze)

fab
źródło
0

Możesz łatwo przejść do pulpitu nawigacyjnego aplikacji na karcie logowania na Facebooku, kliknij ustawienia, a następnie wybierz opcję Wymuszaj HTTPs Nie, zapisz ustawieniawprowadź opis obrazu tutaj

Jerome Blacq
źródło
0

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.

wprowadź opis obrazu tutaj

vidur punj
źródło
0

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.

wprowadź opis obrazu tutaj

Vigneshwaran Sivalingam
źródło
1
Zwróć uwagę, że jeśli zmienisz swoją aplikację z „żywej” na „programistyczną”, będziesz mógł zalogować się z lokalnego hosta na komputerze deweloperskim, ale WSZYSCY TWOI ŻYWY UŻYTKOWNICY NIE BĘDĄ już mogli się zalogować.
webdevbyjoss
Zrobiłem to i nadal wyświetlał mi się błąd i przycisk fb nie
pojawiał
Po utworzeniu aplikacji kliknij przycisk „Utwórz aplikację testową”, aby pobrać aplikację przeznaczoną tylko do programowania / testowania. Nadal musiałem dodawać „localhost” do domen aplikacji.
Brak
@ J.Money Myślę, że do tej pory może się to zmienić. Dzięki, że dałeś mi znać.
Vigneshwaran Sivalingam