Ich versuche Benutzern, die ihre Facebook-Konten mit meiner Rails-App verbunden haben, zu erlauben, ihre Facebook-Freunde zu finden, die sich bereits in der App registriert haben, vorzugsweise in einem indexähnlichen Format (ähnlich wie Formspring).
Momentan verwende ich Devise, OAuth + Fbook Javascript SDK und Koala. Ich habe die Facebook UID von jedem Benutzer, der ihr Facebook in der DB gespeichert verbindet, aber ich weiß nicht, wie man durch die Ergebnisse der Facebook API filtert @friends = @ graph.get_connections ("mich", "Freunde") um die Benutzer anzuzeigen, die übereinstimmende UIDs mit den API-Anrufdaten haben.
Irgendwelche Gedanken? Es gibt wahrscheinlich einen noch besseren Weg, also laß mich wissen, ob irgendwelche zusätzlichen Informationen benötigt werden. Vielen Dank für Ihre Hilfe!
EDIT (Screenshot der Indexaktion im Benutzer-Controller)
Hinweis in @oauth, App-ID und App-Secret werden im Beispielbild abgeschnitten
Wenn Sie ein Array von UIDs für die Freunde des Benutzers erhalten können, finden Sie sie alle in einer einzigen SQL-Anweisung mit IN
(hier Handwaving und / oder Pseudocode, abhängig von den Attributen usw.):
Wenn sich Ihre Facebook-Daten in einem anderen Modell befinden, können Sie dieses Modell auswählen und includes
eingeben, um den Benutzer einzubinden.
[Update]
Sieht so aus, als ob Koala ein Array von string-basierten Hashes zurückgibt, so dass Sie collect(&:id)
nicht verwenden können, um die IDs zu erhalten. Hier ist, was ich verwendet habe, um das Array von IDs auf der Konsole zu bekommen (sensible Daten maskiert, offensichtlich):
Wenn Sie den Rails-Konventionen folgen, wird das id
-Feld Ihrer Tabelle Services
der primäre Schlüssel des Datensatzes und nicht die Facebook-ID des Servicebenutzers sein Abfrage auf ein anderes Feld.
[Update]
Facebooks Graph-API gibt keinen Zugriff mehr auf die Freundesliste des vollständigen Benutzers für Version & gt; = 2.0.
Aus der API-Dokumentation :
App-Freunde : Der Endpunkt
/me/friends
enthält nicht mehr die vollständige Liste von Freunden einer Person. Stattdessen gibt es jetzt die Liste davon zurück Freunde von Personen, die auch Ihre App verwenden.
Tags und Links ruby ruby-on-rails facebook facebook-graph-api omniauth