Facebook Connect

Czego najlepiej użyć aby zaimplementować w aplikacji railsowej Facebook connect. Wiem że API facebooka dosyć dynamicznie się zmienia, a w dokumentacji jest burdel, dlatego chciałem się upewnić jak to aktualnie się robi. Facebooker wydaje mi się troche dużą kobyłą do takiego zadania. Potrzebuje poprostu pewnych danych z profilu facebookowego użytkownika jak email czy avatar, na potrzeby rejestracji.

Poczekaj do wtorku, kolega właśnie użył Facebookera do rejestracji/logowania przez FBConnect, tylko jeszcze musi testy naprawić :wink:

spoko, dzięki :slight_smile:

Może się przydać: http://rubyonrails.pl/forum/t2910-Cyty.pl (zresztą widzę, że wypowiadałeś się w tamtym temacie :wink:

Kiedyś mniej więcej udało mi się coś tam odpalić przy użyciu Facebookera ale miałem problem z odczytem przykładowo emaila użytkownika, mimo że ustawiłem go w perms. Popełniłem też małą aplikacje na canvas przy użyciu Facebookera. Co tutorial to używanie FB w aplikacji wygląda inaczej, dlatego chciałem się upewnić jak aktualnie się to robi.

FB nie udostępni Ci maila użytkownika.

FB udostepni email usera, ostatnio to robilem, lecz trzeba zrobic taki myk.

  • utworzyc aplikację FB do ktorej bedzie sie laczyla nasza aplikacja ( to chyba oczywiste )
  • zaniechac pracy z Fabookerem i przejsc na API
    inicjacja:
-doinstalowac http://github.com/jugend/fgraph - podpiac logowanie:
  • prawa “publish_stream” sa po to aby mozna bylo zassac email
  • nastepnie by pobrac email wystarczy: <%= fgraph_user[‘email’] %>

mam nadzieje ze niczego nie pomieszalem, powinno to zadzialac

pozdrawiam

Wygląda interesująco. Rozumiem że Facebooker używa REST API, którego Graph API jest jakby następcą ? Jak to sie ma do Open Graph ?

niestety ja nie znam odpowiedzi na Twoje pytanie, potrzebowalem czegos po prostu by zadzialalo. Udalo sie i dalej nie drazylem tematu.

pozdrawiam

Przede wszystkim witam wszystkich na forum.

perms=“publish_stream”
mam nadzieje ze niczego nie pomieszalem

Lekko tak => perms=“email”.
W zasadzie wszystko opisane jest tutaj fajnie http://developers.facebook.com/docs/authentication/permissions

Z tego co widzę http://github.com/jugend/fgraph korzysta już z Open Graph.
zantor, czy korzystałeś już z niego?

Czy dane sesji FB użytkownika odczytujesz po stronie Ruby tym fgraphem, czy w JS i przekazujesz do Ruby?

Jeśli po stronie ruby to w tej linijce
FB.init({appId: ‘ID APLIKACJI’, status: true, cookie: true, xfbml: true});
warto już przekazać sesję odczytaną w ruby tak jak w przykładzie dla php pokazują:

http://github.com/facebook/php-sdk/blob/master/examples/example.php

FB nie udostępni Ci maila użytkownika.
Ano tutaj do jakiegoś czasu tylko proxy maila udostępniał. Ale jest już możliwość poproszenia o zgodę na email co w sumie jest bardzo dobre przy integracji ze stronami.

[quote=Snafu]Z tego co widzę http://github.com/jugend/fgraph korzysta już z Open Graph.
zantor, czy korzystałeś już z niego?[/quote]
o ile czegos nie mieszam, to nie korzystalem z niego bezposrednio, bo potrzebowalem de facto wylacznie przechwycic imie usera oraz email :slight_smile:

plugin nawet spoko działa, mimo że miałem małe problemy przy instalacji, niestety adresu email nie udało się pobrać. ale spoko, bardziej mi w sumie zalezy na wygodnym uzywaniu fb connect

jeszcze taki plugin znalazłem jeśli kogoś by interesował open graph http://github.com/godfat/rest-graph

W ustawieniach aplikacji, w karcie Migrations należy ustawić ustawić ‘New SDKs’ na Włączone. Stare pozwalało defaultowo odczytać proxymaila. Ta zmiana pomaga prosić o pozwolenia już w nowy sposób, gdzie perms=‘email’ prosi o główny email osoby.

napotkałem mały problem podczas używania http://github.com/jugend/fgraph , aplikacja wywalała się gdy access token stawał się nieważny (np po wylogowaniu na stronie Facebooka). Dodałem zgodnie z sugestią autora obsługę przerwania w ApplicationController. Błąd dalej występował jeśli w widoku próbowałem dobrać się do wygasych danych, dodałem w kontrolerze wymuszenie wyjątku. Kasowanie cookie dodałem ponieważ wpadało w nieskończoną pętle. Wrzucam może komuś się przyda albo ktoś zasugeruje zgrabniejszy kod

[code=ruby]before_filter :check_facebook_oauth_valid #wymuszenie wyjątku

rescue_from FGraph::OAuthError do
flash[:notice] = “Your Facebook session has expired, please login again”
reset_session
cookies.delete “fbs_#{fgraph_config[‘app_id’]}”, :domain => “#{fgraph_session_cookies[‘base_domain’]}”
redirect_to root_url
end

private

def check_facebook_oauth_valid
fgraph_current_user if fgraph_logged_in?
end[/code]
Nie wiem czy w ogóle jest coś takiego możliwe, ale czy ktoś wie jak sprawdzić skryptem na serverze czy osoba odwiedzająca stronę jest równoczesnie zalogowana do FB ? Chciałbym wtedy wyświetlić trochę inne pola formularza, np do komentarzy.

Co do FB Connect za pomocą Facebookera: działa, ale żeby nie rozsypywał testów trzeba parę modułów ręcznie domixować do klas.

to tam nie było tego w gemie gotowego ?

To jest właśnie dziwne, bo niby jest i aplikacja (tryb development i production) z tym działa, natomiast w trybie test się te moduły nie domiksowują :confused:

mi po małych męczarniach udało się odpalić z open graph, użyty gem i kod który dodałem dwa posty wyżej. Próbowałem też dzis rozwiązać sprawę wygasłego tokena oauth dodając do permissions offline_access, pomogło ale czasem są błądy że tablica z danymi użytkownika jest pusta po odświeżeniu już jest ok, tak że będe musiał się jeszcze temu przyjrzeć i dać znać autorowi o takiej opcji.