Bietet OmniAuth einfache Hooks für die Facebook Graph API?

7

Ich arbeite daran, Omniumuth mit meiner neuen Facebook-Anwendung zu integrieren, und ich schaue mir die eher spärliche Dokumentation an, um zu verstehen, ob es einfache Möglichkeiten gibt, auf die Graph-API zuzugreifen ... Ich ziehe von Koala aus, was ziemlich einfach war.

Hat schon jemand Omniumuth dafür benutzt? Ich möchte Fotos von den Alben der Nutzer erhalten und die eindeutigen URLs für sie sortieren und erhalten.

    
Richard Jordan 24.10.2010, 22:58
quelle

6 Antworten

2

Also konnte ich fb_graph nicht richtig arbeiten lassen - ich bin immer noch ein Anfänger, der ungefähr 8-10 Wochen lang ein Ruby On Rails-Entwickler war und daher keinen Instinkt dafür hat, was sein muss offensichtliche Probleme für andere Leute.

Allerdings habe ich diesen tollen kleinen Blogpost gefunden, der einen einfachen Facebook-Client skizziert und deutlich zeigt, wie alles zusammenpasst. Ich habe ein Problem damit gefunden, das ich / Bild-Objekt abholen, da Facebook ein http302 nicht http200 zurückgibt, aber das war leicht mit Hilfe des Autors herum gearbeitet. Schau es Dir an: Ссылка

Ich benutze jetzt Omniauth für die Einfachheit der Anmeldung / Anmeldung Interaktion basierend auf dieser Walkthrough hier: blog.railsrumble.com/blog/2010/10/08/intridea-omniauth und mit dem Token ich von dem ich bin Verwenden Sie diesen einfachen FBClient aus der obigen bnerd-Referenz, um auf die Graph-API zuzugreifen. Hoffnung, was ich gefunden habe, hilft anderen.

... hier ist meine Version von bnerds Code und es funktionierte für mich:

%Vor%

Ich bin mir sicher, dass jemand, der mehr Erfahrung hat, dies verbessern könnte - ich war ungefähr 10 Wochen in Ruby (und meine erste Programmierung seit Fortran und Pascal an der Universität in den frühen 90ern!).

    
Richard Jordan 26.10.2010, 01:58
quelle
14

Ich habe es endlich herausgefunden:

1) dieses Juwel

2) Verwende den Edelstein:

user = FbGraph::User.new('me', :access_token => session[:omniauth]["credentials"]["token"])

user.fetch

3) rufen Sie Ihre Informationen ab user.name

Denken Sie daran, dass Sie alles von hier bekommen können ttp: //developers.facebook.com/docs/reference/api/user

    
apneadiving 25.10.2010 17:09
quelle
4

Eine weitere gute Option ist Koala: Ссылка

Wenn Sie nur Facebook verwenden, hat Koala eine eigene OAuth-Unterstützung. Es funktioniert auch gut mit OmniAuth. Um sie zusammen zu verwenden, richten Sie OmniAuth für diesen Railscast ein: Ссылка

Fügen Sie der Tabelle "authentications" eine "token" -Spalte und alle unterstützenden Methoden zum Abrufen von Token hinzu. Wenn die App mit Facebook interagieren muss, lass Koala den Token greifen und mach sein Ding. In einem Controller:

%Vor%     
John McGrath 22.11.2010 20:39
quelle
3

Zuerst würde ich für fb_graph gehen, nur vergleichen:

mit koala :

%Vor%

mit fb_graph :

%Vor%

Wenn Sie omniauth verwenden, hat jeder Benutzer viele Berechtigungen (Facebook, Twitter, ...)

Für jede Benutzerautorisierung sollten Sie das oauth token speichern, das in Ihrem oauth-Callback-Hash zurückgegeben wird.

%Vor%

Wenn Sie auf Alben und Fotos zugreifen möchten, tun Sie Folgendes:

%Vor%     
David 02.03.2011 13:12
quelle
0

Ich hatte auch Probleme, die Lösung von devise + Omniauth zum Laufen zu bringen. Ich hatte Probleme:

  1. Der Sitzungscookie hat das Facebook-Authentifizierungstoken nicht gespeichert, das zum Initialisieren von fb_graph und koala benötigt wird.
  2. Ich konnte fb_graph nicht initialisieren, nachdem ich das Facebook-Authentifizierungs-Token an Ort und Stelle gebracht hatte (aber Koala nach einiger Arbeit zur Arbeit gebracht hat).

Ich habe # 1 gelöst, indem ich 'session [: omniauth] = omniauth' in die create-Methode von authentications_controller.rb eingefügt habe.

Ich habe # 2 mit Koala gelöst. Seem wie fb_graph benötigt oauth2, und die Devise omniauth Integration verwendet oauth. Koala arbeitet perfekt mit dem Facebook-Authentifizierungstoken zusammen, das von der Sitzung [: omniauth] ["credentials"] ["token"] gespeichert wird.

Du initialisierst den Koala so:
 - @fbprofile =    Koala :: Facebook :: GraphAPI.new (    Sitzung [: Omniuth] ["Anmeldeinformationen"] ["Token"]    )

    
Andreas Sæbjørnsen 23.04.2011 15:31
quelle
0

Ich habe sichergestellt, dass oauth und oauth2 deinstalliert wurden, und dann habe ich oauth2 installiert. Es scheint, dass Omniauth und fb_graph jetzt funktionieren ... aber wahrscheinlich müssen sie es mehr testen.

    
Phil_Ken_Sebben 26.07.2011 18:11
quelle