APIs für soziale Netzwerke: Das Portal des Internets zur realen Welt
Veröffentlicht: 2022-03-11APIs für soziale Netzwerke haben einen langen Weg zurückgelegt, seit Google im Mai 2008 die erste Version seiner YouTube-API und Facebook im April 2010 die erste Version der Graph-API veröffentlichte. Heute bieten Ihnen diese APIs die Möglichkeit, soziale Netzwerkplattformen nach Beiträgen abzufragen , Benutzer, Kanäle und demografische Daten. Sie können sogar Ihren eigenen Dienst erstellen oder mehr über Ihre Benutzerbasis erfahren.
In diesem Artikel werden wir untersuchen, wie wir einige der beliebten APIs für soziale Netzwerke nutzen können:
- Facebook (Grafik- und Marketing-API)
- Youtube
Wir werden auch ihre Einschränkungen diskutieren und einige der nützlichen Tools untersuchen, die für die Verwendung mit diesen APIs verfügbar sind. Später in diesem Artikel werden wir uns auch ansehen, wie diese APIs in jede Rails-Anwendung integriert werden können.
Ich werde mich jeweils auf eine API für soziale Netzwerke konzentrieren und ihre Fähigkeiten, Einschränkungen und verfügbaren Tools erläutern. Eine Matrix mit den verschiedenen APIs und deren Eigenschaften zum besseren Vergleich wird es später in diesem Artikel geben.
Um die APIs verwenden zu können, müssen Sie zunächst eine App einrichten, die Abfragen im Namen Ihrer Anwendung mit OAuth-basierten Anforderungen erstellt. Benutzer authentifizieren sich bei Ihrer App und Sie können dann mit dem resultierenden Benutzerzugriffstoken auf ihre Daten zugreifen.
Die mittlerweile veraltete FQL (Facebook Query Language) war früher eine SQL-ähnliche Abfragesprache, mit der auf alle Daten von Facebook zugegriffen werden konnte.
Facebook hat die erste Version seiner Graph-API im April 2010 veröffentlicht. Die neueste Version zum Zeitpunkt des Schreibens dieses Artikels ist 2.6, die am 12. April 2016 eingeführt wurde. Es handelt sich um eine Low-Level-HTTP-basierte API, die für Abfragen verwendet werden kann Daten, erstellen Sie Beiträge und erstellen Sie sogar automatisierte Werbekampagnen.
Werkzeuge
Der Graph-API-Explorer ist das am häufigsten verwendete Tool bei der Arbeit mit der Facebook-API. Damit können Sie Graph-API-Abfragen im Browser ausführen und die Ergebnisse untersuchen: Sie können eines der Zugriffstoken Ihrer App verwenden oder spontan eines mit ausgewählten Bereichen erstellen.
Fähigkeiten
Die Graph-API ist eine REST-basierte API, mit der Sie Objekte per HTTP-Anforderung auf bestimmten Knoten erstellen, aktualisieren und löschen können.
Zugangstoken
Um Abfragen für die Graph-API auszuführen, benötigen Sie ein Zugriffstoken, das abgerufen wird, sobald sich ein Benutzer erfolgreich in Ihrer App autorisiert. Das Zugriffstoken sollte von Ihrer Anwendung gespeichert werden.
Bereiche
Bereiche bestimmen, welche Aktionen im Namen eines Benutzers ausgeführt werden können. Die Anwendung fragt nach bestimmten Bereichen, wenn sich ein Benutzer in einer App autorisiert. Mit dem Bereich publish_actions
beispielsweise kann eine App Beiträge im Namen eines Benutzers veröffentlichen. Der E-Mail-Bereich lässt die App die E-Mail des Benutzers lesen. Eine vollständige Übersicht über alle Scopes ist in der offiziellen Dokumentation aufgeführt.
Bestimmte Bereiche wie die publish_actions
oder ads_management
erfordern eine Überprüfung durch Facebook vor der Veröffentlichung der App.
Beispiele
Um zu demonstrieren, wie die Graph-API funktioniert, zeige ich Ihnen, wie Sie Beiträge mit der API lesen, erstellen, aktualisieren und löschen.
Um Ihre eigenen Beiträge zu erhalten, können Sie die GET-Abfrage /me/posts
ausführen. Das Ergebnis ist eine JSON-Zeichenfolge mit einer Liste von Posts, einschließlich ihrer Nachricht, der Erstellungszeit und der ID. Sie können den pretty
Parameter oder einen JSON-Formatierer verwenden, damit die Antwort weniger überladen aussieht.
Um mehr Daten zu Ihren Beiträgen zu erhalten, können Sie die Abfrage um Felder als Abfrageparameter erweitern. Beispielsweise liefert die Abfrage me/posts?fields=reactions, picture
das Bild und die Reaktionen des Posts.
Um einen Post zu erstellen, können Sie einfach eine POST-Aktion gegen den Edge-Feed senden, z. B. me/feed
, mit Parametern wie message: hello world
. Die Graph-API gibt ein JSON-Objekt mit der ID Ihres erstellten Beitrags zurück. Sie können den Beitrag dann unter der Adresse http://facebook.com/[post_id]
ansehen.
Um einen Beitrag zu aktualisieren, können Sie eine POST-Anfrage an den Knoten des Beitrags mit den zu aktualisierenden Feldern als Parameter senden; zB /[post_id]
und Parameter wie Message: lorem ipsum
. Es wird ein Erfolgsindikator mit dem Wert „true“ oder „false“ zurückgegeben.
Um einen Beitrag zu löschen, können Sie einfach eine DELETE-Anforderung an den Knoten mit der Beitrags-ID stellen (z. B. /[post_id]
). Der Rückgabewert ist ein JSON-Objekt mit dem Erfolgswert „true“ oder „false“.
Eine vollständige Übersicht über alle Knoten und Aktionen finden Sie in der Graph-API-Referenz.
Marketing-API
Die Marketing-API verdient besondere Erwähnung, da sie ein leistungsstarkes Tool zum Verwalten von Facebook-Anzeigen und Anzeigeneinblicken über Ihre Anwendung ist.
Es funktioniert genauso wie andere Graph-API-Methoden. Sie benötigen jedoch den Bereich ads_management
, um Zugriff auf die Anzeigen des Benutzers zu erhalten. Facebook muss Ihre App auch überprüfen, bevor Sie sie veröffentlichen können.
Testen
Sobald Sie Ihre App erstellt haben, befindet sie sich im Entwicklungsmodus und wird automatisch in Ihrem App-Dashboard angezeigt (z. B. https://developers.facebook.com/apps/
).
Im Entwicklungsmodus haben nur Administratoren, Entwickler und Tester Zugriff auf Ihre App. Sie können Tester und Administratoren im Rollenbereich Ihres App-Dashboards hinzufügen.
Überprüfungsprozess
Wenn Sie bestimmte Berechtigungen hinzufügen, muss Facebook Ihre App überprüfen, bevor Sie sie veröffentlichen können. Der Überprüfungsprozess wird durch diese Richtlinien definiert.
Um bestimmte Elemente zur Überprüfung einzureichen, können Sie sie einfach im Abschnitt „App-Überprüfung“ Ihres App-Dashboards hinzufügen. Facebook führt Sie dann durch den Überprüfungsprozess und Sie werden benachrichtigt, sobald Ihre App genehmigt wurde.
Einschränkungen und Problemumgehungen
Ratenbegrenzungen
Eine App kann insgesamt 200 Aufrufe pro Stunde und Benutzer tätigen. Wenn Sie dieses Limit erreichen, führen Ihre API-Aufrufe zu Fehlern.
Suche nach Beiträgen auf Facebook
Facebook schränkt die Suche nach Beiträgen und Tags auf Facebook über die Graph-API und FQL ein. Sie können jedoch die Google-Suche-API verwenden, um nach öffentlichen Facebook-Beiträgen zu suchen, und dann die Beitrags-ID in der URL verwenden, um weitere Informationen zu bestimmten Beiträgen über die Graph-API abzurufen.
Abrufen von benutzerdefinierten Zielgruppendaten
Audience Insights auf Facebook ist ein leistungsstarkes Recherchetool, um mehr über eine bestimmte Zielgruppe zu erfahren, basierend auf Interessen, demografischen Merkmalen oder anderen Attributen (z. B. einer Sammlung von E-Mail-Adressen).
Ich habe jedoch keine Möglichkeit gefunden, automatisch Zielgruppeneinblicke über die Anzeigen-API zu erstellen. Teilen Sie uns in den Kommentaren mit, ob Sie kreative Ideen oder Vorschläge dazu haben.
Die Instagram-API wurde erstmals im April 2014 veröffentlicht und ermöglicht es Ihnen, Apps zu erstellen, die Benutzerbeiträge analysieren und Benutzern helfen, ihre eigenen Beiträge zu verwalten.
Werkzeuge
Da die API-Konsole von Instagram zum Zeitpunkt dieses Artikels veraltet ist, empfehle ich die Verwendung von Apigee zu Testzwecken in Ihrem Browser.
Fähigkeiten
Die Instagram-API ist eine REST-basierte API. Alle Endpunkte sind in der offiziellen Dokumentation beschrieben.
Zugangstoken
Um Abfragen für die Instagram-API auszuführen, benötigen Sie ein Zugriffstoken, das abgerufen wird, sobald sich ein Benutzer in Ihrer App autorisiert. Damit ein Benutzer ein Zugriffstoken erhält, muss er oder sie zur Autorisierungs-URL Ihrer App weitergeleitet werden. Der Server leitet den Benutzer dann um, nachdem er Ihre App autorisiert hat, und Sie können dann das Token lesen.
Bereiche
Ihre App kann verschiedene Berechtigungen anfordern. „Basic“ beschränkt Sie beispielsweise darauf, die Profilinformationen und Medien eines Benutzers zu lesen. Mit „public_content“ können Sie alle öffentlichen Profile und Medien im Namen eines Benutzers lesen.
Beispiele
Um zu demonstrieren, wie die Instagram-API funktioniert, werde ich anhand des Medienendpunkts https://api.instagram.com/v1/media/popular
einige Beispiele durchgehen.
Dieser Endpunkt gibt die aktuell beliebten Medien von Instagram zurück, wenn ein Zugriffstoken als Parameter übergeben wird. Das Ergebnis ist ein JSON-Array von Posts, das für jeden seine Medien-ID, einen Link zu seinem Bild, Likes, Kommentare, den Benutzer, der es gepostet hat, und einige andere Attribute enthält.
Sie können Apigee verwenden, um herumzuspielen und mehr über die API-Endpunkte und ihre Parameter zu erfahren.
Testen
Jede neue App, die auf der Instagram-Plattform erstellt wird, startet im Sandbox-Modus. Dies ist eine voll funktionsfähige Umgebung, mit der Sie öffentlich verfügbare API-Endpunkte testen können, bevor Sie Ihre App zur Überprüfung einreichen.
Um Ihre App zu testen, erstellen Sie einfach eine Staging-Version und führen Sie alle Abfragen über diese Version aus, anstatt über die Live-Version, die die Überprüfung bestanden hat.
Überprüfungsprozess
Apps im Sandbox-Modus können jeden API-Endpunkt verwenden, sind jedoch auf eine begrenzte Anzahl von Benutzern und Medien beschränkt. Es ist ein großartiger Mechanismus zum Entwickeln und Testen einer App.
Um live zu gehen und auf alle Instagram-Inhalte zuzugreifen, müssen Sie Ihre Bewerbung zur Überprüfung einreichen. Nach der Überprüfung können Sie nur die Bereiche für Benutzer anfordern, für die Ihre App genehmigt wurde.
Einschränkungen und Problemumgehungen
Demografische Analyse
Zum Zeitpunkt der Erstellung dieses Artikels gibt es keine Möglichkeit, Informationen über Alter, Geschlecht oder Interessen eines öffentlichen Benutzers zu erhalten, da Instagram Ihnen diese Informationen nicht zur Verfügung stellt.
Um demografische Daten über Follower oder eine Liste von Instagram-Nutzern zu erhalten, müssten Sie alle durchlaufen und versuchen, ihr Alter und Geschlecht oder ihre Interessen anhand ihrer Follower oder der in ihrer Biografie bereitgestellten Informationen zu bestimmen.
Eine gute Big-Data-Lösung für dieses Problem könnte für einige Unternehmen ein wertvoller Dienst sein.
Ratenbegrenzungen
Alle Ratenbegrenzungen auf der Instagram-Plattform werden durch Zugriffstoken in einem gleitenden 1-Stunden-Fenster gesteuert. Live-Apps haben höhere Ratenbegrenzungen als Apps im Sandbox-Modus. Das globale Ratenlimit für eine Live-App liegt derzeit bei 5.000 Aufrufen pro Stunde.
Die Twitter-API wurde erstmals im September 2006 veröffentlicht. Sie ist eine öffentliche REST-API, die Lese- und Schreibzugriff auf Twitter-Daten bietet. Die Authentifizierung erfolgt über OAuth. Antworten sind im JSON-Format.
Werkzeuge
Twitter verfügt über ein von Apigee unterstütztes API-Konsolentool, mit dem Anfragen im Browser getestet werden können.
Fähigkeiten
Mit der REST-API können Sie die Tweets, Follower und verfolgten Personen eines Benutzers abrufen. Sie können auch in anderen Tweets nach Hashtags suchen.
Zugangstoken
Mit Twitter können Sie Apps erstellen, bei denen sich Benutzer gegen ein Zugriffstoken authentifizieren können. Das Authentifizierungsmodell ist OAuth.
Bereiche
Es gibt nur zwei Berechtigungen, die auf der Einstellungsseite der App festgelegt werden müssen: Nur Lesen und Lesen und Schreiben. Mit letzterem können Sie Tweets erstellen und andere Post-Aktionen im Namen eines Benutzers ausführen.
Beispiele
Um die Verwendung der Twitter-API zu demonstrieren, werde ich die Tweets des autorisierten Benutzers abrufen. Das Ergebnis ist ein JSON-Array mit den Bildern, Favoriten, Retweets, URLs, dem Erstellungsdatum und anderen Attributen des Tweets. Verwenden Sie Apigee, um herumzuspielen und mehr über die API-Endpunkte und ihre Parameter zu erfahren.
Test- und Überprüfungsprozess
Für die Twitter-API ist derzeit kein Überprüfungsprozess oder Testmodus verfügbar.
Einschränkungen und Problemumgehungen
Demografische Analyse
Derzeit gibt es keine einfache Möglichkeit, demografische Daten von den Twitter-Followern einer Person zu erhalten. Der Brute-Force-Ansatz würde darin bestehen, jeden Follower zu durchsuchen und zu versuchen, die Daten über seine Bio und verknüpfte Konten in sozialen Netzwerken abzurufen.

Sie können dann anhand der gesammelten Follower-Daten durch Datenanalyse weitere Annahmen treffen. Eine weitere Möglichkeit, mehr Einblicke zu erhalten, bietet die kostenpflichtige Unternehmens-API-Plattform GNIP von Twitter. Unter anderem können Sie damit Zielgruppen erstellen und Informationen über diese über die API abrufen. Die API befindet sich derzeit in der BETA-Phase.
Ratenbegrenzungen
Twitter hat Ratenbegrenzungen auf Benutzerbasis und auf 15-Minuten-Basis. Wenn Ihre Anwendung über mehrere Token verfügt, können Sie einfach Token für öffentliche Vorgänge abwechseln, um zu vermeiden, dass das Limit erreicht wird.
Youtube
Die YouTube-Daten-API wurde erstmals im Januar 2013 eingeführt. Sie ermöglicht es Ihnen, YouTube-Funktionen zu Ihrer Anwendung hinzuzufügen, nach Inhalten zu suchen und die demografischen Daten eines YouTube-Kanals zu analysieren. Es ist eine tokenbasierte OAuth-REST-API, die JSON-Antworten zurückgibt.
Werkzeuge
Mit dem API Explorer können Sie nicht autorisierte und autorisierte Anforderungen testen. Sie können Anfragen von Ihrem Browser an die bereitgestellten Endpunkte ausführen.
Fähigkeiten
Sie können unter anderem mit Aktivitäten, Chats, Live-Übertragungen, Wiedergabelisten, Kanälen, Videos und Abonnements arbeiten. Bei den meisten Endpunkten müssen Sie sich mit einem YouTube-Konto autorisieren.
Zugangstoken
Die YouTube Data API unterstützt das OAuth 2.0-Protokoll zur Autorisierung des Zugriffs auf private Nutzerdaten. Sobald ein Benutzer in Ihrer Anwendung autorisiert wurde, wird er zu Ihrer Anwendung umgeleitet, wo das Zugriffstoken gespeichert werden soll.
Um die OAuth 2.0-Autorisierung zu verwenden, müssen Sie zunächst Autorisierungsdaten in der Google Developer Console abrufen.
Bereiche
Die YouTube Data API unterstützt derzeit die folgenden Bereiche:
- SSL erzwingen - Verwalten Sie Ihr YouTube-Konto, aber nur über eine SSL-Verbindung.
- Standard – Verwalten Sie Ihr YouTube-Konto. Dieser Bereich ist funktional identisch mit dem Bereich youtube.force-ssl, erfordert jedoch keine SSL-Verbindung.
- Nur lesen – Zeigen Sie Ihr YouTube-Konto an.
- Hochladen - Laden Sie YouTube-Videos hoch und verwalten Sie Ihre YouTube-Videos.
- Partner Channel Audit – Abrufen von Informationen, die Multichannel-Netzwerke als Kriterien verwenden, um einen Kanal in ihrem Netzwerk zu akzeptieren oder abzulehnen.
Beispiele
Als Beispiel für die Verwendung der Youtube-Daten-API fordern die folgenden Anfragen nach Videos mit „Codierung“ in Titel und Beschreibung an:
https://www.googleapis.com/youtube/v3/search?part=snippet&q=coding&key={YOUR_API_KEY}
Das Ergebnis ist ein JSON-Objekt, das den Titel, die Beschreibung, die Video-ID und die Kanal-ID enthält. Letzteres können Sie nutzen, um mehr über den Kanal zu erfahren.
Der Parameter part
ist für jede API-Anforderung erforderlich, die eine bestimmte Ressource zurückgibt. Der Parameter identifiziert Ressourceneigenschaften, die in einer API-Antwort enthalten sein sollten. Eine Videoressource hat beispielsweise die folgenden Teile: Ausschnitt, Inhaltsdetails, Dateidetails, Player, Verarbeitungsdetails, Aufzeichnungsdetails, Statistiken, Status, Vorschläge, Themendetails.
Alle anderen Parameter, mit Ausnahme des API-Schlüssels, unterscheiden sich von Aufruf zu Aufruf. Lesen Sie mehr darüber im API-Referenzhandbuch.
Die Pinterest-API wurde ursprünglich im April 2015 veröffentlicht. Es ist eine RESTful-API, die Zugriff auf die Pinterest-Daten eines Benutzers bietet, wie z. B. seine Pinnwände, Pins, Follower und mehr. Die Pinterest-API verwendet OAuth und ermöglicht sowohl Lese- als auch Schreibberechtigungen bei der Interaktion mit den Inhalten eines Benutzers.
Werkzeuge
Wie andere bietet Pinterest einen API-Explorer, um ihre Endpunkte zu testen und Abfragen für sie auszuführen. Hier können Sie sich alle Tools ansehen.
Fähigkeiten
Mit der Pinterest-REST-API können Sie Pins und Pinnwände erstellen und Pinterest-Daten mit OAuth abfragen.
Zugangstoken
Pinterest verwendet OAuth 2.0, um Anfragen zwischen Ihrer App und Ihren Benutzern zu authentifizieren. Alle Anfragen müssen über HTTPS erfolgen.
Bereiche
Bereiche bestimmen, was eine App für einen Benutzer tun kann. Pinterest verwendet die folgenden Bereiche:
-
none
(Kennung muss bekannt sein): Verwenden Sie die GET-Methode für das Profil eines Benutzers, Pinnwand- und Pin-Details sowie die Pins auf einer Pinnwand. -
read_public
: Verwenden Sie die GET-Methode für die Pins, Boards und Likes eines Benutzers. -
write_public
: Verwenden Sie die Methoden PATCH, POST und DELETE für die Pins und Pinnwände eines Benutzers. -
read_relationships
: Verwenden Sie die GET-Methode für die Follower und Follower eines Benutzers (auf Boards, Benutzern und Interessen). -
write_relationships
: Verwenden Sie die Methoden PATCH, POST und DELETE für die Follower und Follower eines Benutzers (auf Boards, Benutzern und Interessen).
Beispiele
Um die Verwendung der Pinterest-API zu demonstrieren, werde ich demonstrieren, wie die neuesten Pins des Benutzers gelesen werden:
https://api.pinterest.com/v1/me/pins/?access_token={your_token}&fields=id,link,note,url,counts,board,created_at
gibt die Pins eines Benutzers mit seiner ID, seinem Link, seiner Notiz, URL, Likes und Repins.
Test- und Überprüfungsprozess
Apps befinden sich zunächst im Entwicklungsmodus und müssen zur Überprüfung eingereicht werden, bevor sie im Produktionsmodus freigegeben werden.
Einschränkungen und Problemumgehungen
Demografische Analyse
Es gibt keine gängige Methode, um demografische Daten von einem Board zu erhalten. Sie können jedoch versuchen, die Follower eines Boards und Informationen über sie aus ihrer Biografie und Links zu anderen sozialen Netzwerkkonten abzurufen. Denkbar wäre auch eine Big-Data-Lösung über die gemeinsamen Anschlüsse der Nutzer.
Suchen Sie nach Stecknadeln
Es gibt derzeit keine Möglichkeit, über die API nach Pins mit bestimmten Tags oder Schlüsselwörtern zu suchen. Sie können diese Einschränkung umgehen, indem Sie die Google Custom Search API verwenden, um nur nach Ergebnissen auf Pinterest-Pins zu suchen und die Pin-ID über die URL zu erfassen. Die ID kann dann verwendet werden, um Informationen über die PIN über die API zu erhalten.
Ratenbegrenzungen
Jede App (mit einer eindeutigen App-ID) darf 1.000 Aufrufe pro Endpunkt und Stunde für jedes eindeutige Benutzertoken ausführen.
Jede API-Antwort gibt einen Header zurück, der Sie über Ratenbegrenzungen informiert. X-Ratelimit-Limit ist das Ratenlimit für diese spezifische Anfrage, und X-Ratelimit-Remaining ist die Anzahl der Anfragen, die Sie im 60-Minuten-Fenster haben.
Wenn Sie Ihr Ratenlimit für einen bestimmten Endpunkt überschreiten, erhalten Sie den Fehlercode 429 „Zu viele Anfragen“.
Vergleich von APIs für soziale Netzwerke
Ausführung | OAuth | Format | Demografie | |
---|---|---|---|---|
v2.6 Erstveröffentlichung: April 2010 | OAuth 2 | REST-Anforderungen mit JSON-Antworten | Unterstützt | |
v1 Erstveröffentlichung: April 2014 | OAuth 2 | REST-Anforderungen mit JSON-Antworten | Nicht unterstützt | |
v1.1 Erstveröffentlichung: September 2006 | OAuth 1 | REST-Anforderungen mit JSON-Antworten | Wird nur mit GNIP unterstützt | |
Youtube | v3 Erstveröffentlichung: Januar 2013 | OAuth 2 | REST-Anforderungen mit JSON-Antworten | Unterstützt |
v1 Erstveröffentlichung: April 2015 | OAuth 2 | REST-Anforderungen mit JSON-Antworten | Nicht unterstützt |
Demo-Anwendung mit Devise
Die Integration dieser APIs in Ihre neuen oder bestehenden Anwendungen ist dank einer Vielzahl von API-Paketen und Bibliotheken für soziale Netzwerke einfacher denn je. Die meisten modernen Plattformen und Frameworks verfügen über bewährte Bibliotheken von Drittanbietern, die sogar den Authentifizierungsaspekt all dieser APIs in einer einzigen Bibliothek mit ordentlicher Plugin-Architektur vereinen.
In diesem Artikel werfen wir einen Blick darauf, wie Devise, ein Ruby-Juwel, dies für Rails-Anwendungen so elegant macht. Devise ist eine flexible, auf Warden basierende Authentifizierungsbibliothek, die Authentifizierung, Registrierung, Anmeldung und Datenspeicherung für mehrere Anmeldeanbieter implementiert. Wenn Sie eher ein Front-End-Typ sind und etwas Ähnliches für AngularJS ausprobieren möchten, werfen Sie einen Blick auf diesen Artikel.
Devise ist, wie die meisten Bibliotheken dieser Klasse, nicht mit integrierter Unterstützung für eine der oben genannten APIs für soziale Netzwerke ausgestattet. Unterstützung für jede dieser APIs für soziale Netzwerke wird durch zusätzliche Edelsteine bereitgestellt. Die folgenden Edelsteine sind für die Rails-Authentifizierung verfügbar, die die 5 in diesem Artikel besprochenen Anbieter abdecken:
gem 'omniauth-facebook' gem 'omniauth-pinterest' gem 'omniauth-twitter' gem 'omniauth-google-oauth2' gem 'omniauth-instagram'
Da diese nur Authentifizierung, Registrierung, Anmeldung und Speicherung für jeden dieser Anbieter bereitstellen, müssen wir auch die folgenden Edelsteine für die eigentlichen API-Clients erhalten:
gem 'twitter' # https://github.com/sferik/twitter gem 'instagram' # https://github.com/facebookarchive/instagram-ruby-gem gem 'koala' # (Facebook API) https://github.com/arsduo/koala gem 'google-api-client' # (YouTube API), https://github.com/google/google-api-ruby-client gem 'pinterest-api' # https://github.com/realadeel/pinterest-api
Omniauth und Authentifizierung
Damit ein Benutzer Ihre App bei Ihrem Anbieter autorisieren kann, können Sie einfach einen Link mit folgendem Pfad angeben:
omniauth_authorize_path('user', :facebook) omniauth_authorize_path('user', :instagram) ...
Um nach der Authentifizierung eines Benutzers auf den Rückruf zu reagieren, können Sie einen OmniauthCallbacksController mit den Bereichen als Funktionen definieren wie:
class AuthenticationsController < Devise::OmniauthCallbacksController def facebook if request.env["omniauth.auth"] ... end end end
Hier können Sie Ihrer Anwendung ein neues Authentifizierungsmodell mit dem Token und den Daten hinzufügen:
authentication = where(provider: omniauth.provider, user_id: user.id) .first_or_create do |auth| auth.user = user auth.uid = omniauth.uid auth.secret = omniauth.credentials.secret auth.token = omniauth.credentials.token ... end
API-Aufrufe tätigen
Hier ist ein Beispiel für die Verwendung von Koala zum Abfragen der Facebook-API. Die restlichen Anbieter arbeiten mehr oder weniger ähnlich und sind in der README des Edelsteins dokumentiert.
So kommen Sie mit Koala an Ihre Benutzerdaten:
authentication = user.authentication_for_provider(:facebook) token = authentication.token api = Koala::Facebook::API.new(token) results = api.get_object("me")
Sie können dann das von der API zurückgegebene JSON-Ergebnis verwenden. Der Quellcode dieser Demoanwendung ist auf GitHub verfügbar.
Einpacken
APIs für soziale Netzwerke bieten Ihnen ein leistungsstarkes Tool, um den großen Datensatz sozialer Netzwerke abzufragen und große Datenmengen für Ihre Anwendung zu sammeln. Sie können einen Dienst auf diesen APIs aufbauen oder sie verwenden, um Ihre eigenen Anwendungs- und Benutzereinblicke zu verbessern.
Rails und die verfügbaren Gems machen es einfach, diese APIs in Ihre Rails-App zu integrieren und die Schnittstellen mit einer Abstraktionsschicht zwischen Ihrer App und der API abzufragen.