2010-08-19 10 views
13

Próbuję użyć FBGraph, aby moja aplikacja publikowała wiadomości na ścianie użytkowników. Jednak wszystkie interfejsy API są dla mnie czymś obcym, a ja po prostu próbuję zmienić rzeczy i zobaczyć, co się stanie. Właśnie otrzymuję ten komunikat o błędzie:facebook API OpenGraph na szynach (FBGraph)

Czy ktoś wie, co to znaczy redirect_uri? Co by było na mojej stronie Ustawienia aplikacji na Facebooku?

+0

Jeśli podasz jakiś kod byłoby łatwiej odpowiedzieć. – serg

Odpowiedz

13

Nie jestem ekspertem od Facebooka, ale trafiłem dokładnie na ten sam problem, co kilka godzin temu, kiedy próbowałem zalogować się do użytkownika w aplikacji internetowej z Facebookiem.

Wygląda na to, że parametr redirect_uri określony w wywołaniu "https://graph.facebook.com/oauth/authorize" musi znajdować się w tej samej domenie co adres Connect aplikacji. (Można ustawić, które łączą URL z sekcji Połącz w ustawieniach aplikacji)

Pozdrowienia, Florin

+0

Jeśli ograniczają one oddzwanianie, dlaczego nie pozwalają na wiele adresów URL połączeń? Szkoda, że ​​nie stworzyliby listy łatwej do zarządzania zamiast pojedynczego pola tekstowego. – Kieveli

20

Florin jest poprawna. Tylko uwaga tutaj .. podczas testowania lokalnie trzeba będzie ustawić go:

http://localhost:3000/ (lub bez względu na port serwera aplikacji jest)

Następnie po przeniesieniu go do produkcji, ustawić go do zwykłego URL:

http://yourdomain.com/

mam oddzielną aplikację na Facebooku, którego używam w rozwoju do testowania, więc nie muszę się zmienić iz powrotem między nimi i skonfigurować klucze w pliku ustawień, który ma moje tokeny dla aplikacji rozwojowych i produkcyjnych.

W każdym razie wygląda na to, że prawie jesteś. Wracają do adresu URL wywołania zwrotnego. Po zaktualizowaniu adresu URL facebook_connect powinno być w porządku

+1

Wyobraziłem sobie to rozwiązanie, a także wyobrażałem sobie, że w jakiś sposób zostawiam klucze programisty w ramach wdrożenia produkcyjnego. – Kieveli

+0

Użyj wtyczki dla zmiennych aplikacji dla każdego środowiska. Wypróbuj moją wtyczkę -> https://github.com/cowboycoded/yettings Umożliwi to użycie pliku YAML podobnego do pliku database.yml i wybierze właściwe klucze/wartości w zależności od środowiska, w którym uruchamiasz serwer. – johnmcaliley

+6

Nie potrzebujesz dwóch konfiguracji. Jeśli ustawisz swoją domenę witryny na twojadomena.com, Facebook umożliwi także uwierzytelnianie dla każdej poddomeny. W lokalnym pliku hosts możesz dodać wpis mapujący 127.0.0.1 do localhost.twojadomena.com. Następnie w przeglądarce korzystasz z http://localhost.yourdomain.com:{port}/ i wszystko będzie działać poprawnie. –

0

Wystarczy zweryfikować swój "identyfikator aplikacji". W moim przypadku miałem ten problem, ponieważ używałem identyfikatora z mojego innego projektu, nad którym pracowałem. Dość oczywiste, ale straciłem trochę czasu.

0

Musiałem się upewnić, miałem tam zbyt zakresu:

config.omniauth :facebook, 'xxxx', 'xxx', :scope => 'offline_access,email,publish_stream' 

Plus naprawdę trzeba upewnić się, poczekać kilka minut, ponieważ nie ma czasu, aby propagować ..

1

Może zajść potrzeba sprawdzenia ustawień> Podstawowe> Informacje podstawowe> Domena aplikacji. Wierzę, że hat musi być ustawiony poprawnie również dla redirect_uri.

1

Miałem ten sam problem.

W moim przypadku skonfigurowałem adres strony na facebooku jako: "http: // localhost: 3000", to był zły URL do Facebooka.

Powodem jest to, że brak z/na końcu adresu URL, więc prawidłowy adres URL witryny powinna być: „http: // localhost: 3000 /”

Powiązane problemy