APIs für soziale Netzwerke: Das Portal des Internets zur realen Welt

Veröffentlicht: 2022-03-11

APIs 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)
  • Instagram
  • Twitter
  • Youtube
  • Pinterest

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.

APIs für soziale Netzwerke: Das Portal des Internets zur realen Welt

Verwenden Sie APIs für soziale Netzwerke, um Ihre Benutzer besser kennenzulernen, als sie sich selbst kennen.
Twittern

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.

Facebook

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.

Instagram

Abbildung der Instagram-API

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.

Twitter

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

Abbildung der YouTube-API

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.

Pinterest

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
Facebook v2.6
Erstveröffentlichung: April 2010
OAuth 2 REST-Anforderungen mit JSON-Antworten Unterstützt
Instagram v1
Erstveröffentlichung: April 2014
OAuth 2 REST-Anforderungen mit JSON-Antworten Nicht unterstützt
Twitter 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
Pinterest 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.

Abbildung der API für soziale Netzwerke

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'
Eines der besten Dinge an Rails ist, dass es viele Plugins gibt, die von der Open-Source-Community geschrieben wurden. Diese werden als Edelsteine ​​verteilt. Diese Edelsteine ​​sind unter einer zentralen Konfigurationsdatei aufgeführt und werden von Bundler verwaltet.

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.