Advertisement
  1. Code
  2. Twitter API
Code

Erstellen mit der Twitter-API: Erste Schritte

by
Difficulty:AdvancedLength:LongLanguages:
This post is part of a series called Building With the Twitter API.
Building With the Twitter API: OAuth, Reading and Posting

German (Deutsch) translation by Władysław Łucyszyn (you can also view the original English article)

Final product image
What You'll Be Creating

Der Einstieg in die Twitter-API mag etwas kompliziert erscheinen, ist aber eigentlich ganz einfach.  Es gibt eine Reihe von Bibliotheken für gängige Sprachen, die den Prozess recht einfach machen. Die API-Dokumentation von Twitter hat sich im Laufe der Zeit ebenfalls erheblich verbessert.

Im März 2013 benötigte Twitter OAuth für alle API-Sitzungen. Dies führte zu Verbesserungen für Benutzer und Entwickler. Die sichere authentifizierte Plattform von OAuth hat Twitter dabei geholfen, die Privatsphäre der Benutzer zu schützen und gleichzeitig das Tracking zu verbessern. Dies wiederum hat es dem Unternehmen ermöglicht, die Grenzen für Entwickler bei einzelnen API-Aufrufen zu erhöhen.

Diese Serie besteht aus drei Teilen. Teil eins wird umfassen:

  • eine Einführung in die Twitter-API
  • Erstellen eines Datenbankschemas für Twitter
  • Entwicklung einer PHP-Anwendung im Yii-Framework für die Arbeit mit Twitter

Birdcage, unsere grundlegende Yii Twitter-Anwendung, die in diesem Lernprogramm verwendet wird, steht Ihnen über Open Source zur Verfügung. Wenn Sie mehr über Yii erfahren möchten, lesen Sie Einführung in das Yii-Framework.

Teil zwei dieser Serie wird Folgendes abdecken:

  • Authentifizierung bei Twitter über OAuth
  • Verarbeitung eingehender Tweets im Hintergrund mithilfe der REST-API
  • Tweets posten

Teil drei behandelt die Echtzeit-Twitter-Streaming-API und die Open-Source-Implementierung von Phirehose Streaming.  Während der zweite Teil Tweets mit der REST-API verarbeitet, wird im dritten Teil beschrieben, wie eine ständig aktive Verbindung mit dem Twitter-Datenstrom hergestellt wird. Dies ist möglicherweise ein neues Thema für viele PHP-Entwickler.

Einführung in die Twitter-API

Diese Serie von Tutorials konzentriert sich hauptsächlich auf drei Teile der Twitter-Plattform:

  1. OAuth-Authentifizierung
  2. die REST-API
  3. die Streaming-API

Sie können die Twitter API-Dokumentation hier lesen.

OAuth-Authentifizierung

Seit Version 1.1 ist für die Twitter-API nun die OAuth-Authentifizierung erforderlich, entweder die Anwendungsauthentifizierung oder die Anwendungsbenutzerauthentifizierung.  Letzteres erfordert, dass Ihr Twitter-Benutzer auf die Twitter-Website klickt, sich mit seinen Anmeldeinformationen anmeldet und dann zu Ihrer Website zurückkehrt. Die Anwendungsbenutzerauthentifizierung ist für viele benutzerspezifische API-Aufrufe erforderlich.

Wenn Sie also anfangen, im Namen eines Benutzers auf die Twitter-API zuzugreifen, wird Ihr Benutzer an Twitter weitergeleitet, um Ihre Anwendung zu autorisieren.  Twitter gibt Token zurück, die nicht verfallen, bis der Benutzer sie widerruft. Sie verwenden diese Token, um Ihre Anrufe für diesen Benutzer zu authentifizieren.

Die REST-API

Der gebräuchlichste Weg zum Zugriff auf Twitter-Daten ist über die REST-API. Mit den über OAuth erhaltenen sicheren Token fordert Ihre Anwendung bei Twitter Anfragen nach bestimmten Daten an, z. die Heimatzeitleiste des Benutzers oder seinen eigenen Status oder die Anforderung, einen Tweet für einen bestimmten Benutzer zu veröffentlichen.

Using the REST API with Twitter

Die REST-API sollte die Anforderungen der meisten Programmierer für Twitter-Anwendungen erfüllen.

Die Streaming-API

Mit der Twitter Streaming-API können Sie Tweets und Benachrichtigungen in Echtzeit von Twitter empfangen. Voraussetzung ist jedoch eine dauerhafte Verbindung zwischen Ihrem Server und Twitter, die ständig aktiv ist.

Glücklicherweise gibt es eine großartige Open-Source-Bibliothek namens Phirehose von Fenn Bailey, die die meisten Twitter-Streaming-API-Anforderungen implementiert. In Teil drei dieses Tutorials erfahren Sie, wie Sie Phirehose einrichten und an Ihre Anwendung anpassen.

Es gibt drei Varianten der Twitter Streaming-API:

  1. Der öffentliche Strom. Dadurch kann Ihre Anwendung öffentliche Daten auf Twitter überwachen, z. B. öffentliche Tweets, Hashtag-Filter usw.
  2. Der Benutzerstrom. Auf diese Weise können Sie den Tweet-Stream eines Benutzers in Echtzeit verfolgen. Teil drei dieses Tutorials konzentriert sich auf den Benutzerdatenstrom.
  3. Site Streams (vorherige Genehmigung von Twitter erforderlich). Mithilfe von Site-Streams kann Ihre Anwendung Echtzeit-Twitter-Feeds für eine große Anzahl von Benutzern überwachen.

Die Aufgabe Ihrer Streaming-Implementierung besteht darin, die eingehenden Ereignisse so schnell wie möglich zu protokollieren und sie im Hintergrund mithilfe der REST-API zu verarbeiten, um tiefere Daten zu sammeln. Twitter nennt dies manchmal das Sammeln von tieferen Daten zu Ereignissen "hydratisieren".

Die Nutzung der REST-API unterliegt verschiedenen Preisbeschränkungen durch Twitter. Es ist wichtig, ein verantwortungsbewusster Benutzer der API von Twitter zu sein, indem Sie die Begrenzung Ihrer Aktivitäten in Ihrer Anwendung planen und die Reaktionen der API-Grenzwertbegrenzung überwachen.  Für die Streaming-API gibt es keine Ratenbeschränkungen, da die Daten beim Eintreffen auf den Server übertragen werden.

Erstellen eines Datenbankschemas für die Twitter-API

Obwohl Twitter aus der Ferne einfach erscheint, ist es tatsächlich ein sehr tiefer und komplexer Datenstrom, einschließlich der ständig wachsenden Zeitleiste, Beziehungen zwischen Benutzern, Erwähnungen, Benachrichtigungen, Favoriten, Listen, Geolocation, Multimedia, Orten usw.

Als Entwickler müssen Sie entscheiden, welche dieser Daten für Ihre Anwendung am wichtigsten ist, um sie in Ihrer eigenen Datenbank zu speichern. Ein minimalistischer Ansatz kann Ihnen gut tun.  Die Twitter-API ist so flexibel, dass Sie jederzeit auf die Daten zugreifen können, die sich auf die von Ihnen gespeicherten Ereignisse beziehen.

Birdcage ist eine kostenlose, auf Open Source basierende, Yii-basierte Anwendung, die das Twitter API-Framework für die Zwecke dieses Lernprogramms implementiert.  Wenn Sie mit Yii nicht vertraut sind, lesen Sie bitte meine Einführung in das Yii-Framework. Auch wenn Sie sich mit Yii nicht auskennen, sollten die einzelnen PHP-Codesegmente in diesem Tutorial leicht zu verstehen sein.

Wenn Sie eine Twitter-API-Implementierung in Basis-PHP anzeigen möchten, besuchen Sie Adam Greene's 140Dev. Er hat großartige Arbeit geleistet, indem er eine grundlegende Plattform für den Zugriff auf die Twitter-API bereitstellt.  Sein Buch Twitter API Engagement Programming verwendet die Twitter API auf kreative Weise, um Ihren Einfluss auf Twitter organisch zu steigern.

Ein Vorteil von Birdcage und des Yii Framework-Codes besteht darin, dass wir die Gerüstkomponente Gii von Yi verwenden können, um in wenigen Minuten eine Webbenutzeroberfläche für die Basisanwendung zu erstellen.

Birdcage verwendet als Yii-Anwendung ActiveRecord-Datenbankmigrationen, um die Datenbank zu erstellen. Datenbankmigrationen ermöglichen die programmgesteuerte Erstellung und Erweiterung unseres Schemas.  Dies ist besonders nützlich, wenn Sie eine minimalistische Verwendung der Twitter-API implementieren und später das gesammelte Sammlungsergebnis erweitern.

Ich gehe Ihnen einige Beispiele für den Aufbau des Datenbankschemas in Yii und die Leistungsfähigkeit seines webbasierten Gerüstkonstruktors Gii vor.

Wenn Sie den Birdcage-Code selbst ausprobieren möchten, besuchen Sie meine Website, um eine vollständige Anleitung für die Installationsanweisungen zu erhalten.

Zuerst erstellen wir eine Kontentabelle, in der die OAuth-Token und -Schlüssel von Twitter für die Konten gespeichert werden, für die wir uns anmelden möchten Diese Konten sind mit dem in der Benutzertabelle registrierten Benutzer durch unsere interne user_id verknüpft.

In der Befehlszeile weisen wir Yii an, eine neue Tabellenmigration für Twitter-Konten zu erstellen: ./app/protected/yiic migrate create create_account_table.

Wir führen die Migration manuell wie folgt durch:

Damit Yii die Migration ausführen kann, die die SQL-Tabelle erstellt, führen wir Folgendes aus: ./app/protected/yiic migrate up.

Sie werden so etwas sehen:

Example of Yii Migration Tool

Wir können Gii, Yiis webbasierten Gerüstgenerator, verwenden, um unsere Modellansicht-Controller für die Datenbank zu erstellen.

Gii - the Yii Code Generator

In meiner Entwicklungsumgebung verwende ich meinen Webbrowser auf localhost:8888/twitter/app/gii, gebe mein Gii-Passwort ein (in meiner twitter.ini-Datei gespeichert) und wähle Model Generator:

Using Gii to Build Our Model Code

Es dauert nur eine Sekunde und sollte diese Erfolgsmeldung zeigen:

Gii Model Code Successfully Generated

Mit dem von Gii generierten Modellcode können verschiedene Methoden für die Account-Tabelle erstellt werden. Gii kann aber auch die Anfänge der Webbenutzeroberfläche für die Verwaltung von Twitter-Konten generieren.

Klicken Sie auf Bootstrap Generator, geben Sie das Account modell an und Gii baut das Gerüst für die Webbenutzeroberfläche Ihres Kontos auf:

Using the Gii Bootstrap Generator for Web Scaffolding

Der resultierende Code erstellt eine Standard-Modellansicht-Controller-Benutzeroberfläche, die etwa wie folgt aussieht:

Gii Default Controller

Verwenden von Yii Active Record-Migrationen und Gii ist ein äußerst leistungsfähiger Zeitsparer, um eine grundlegende Web-Benutzeroberfläche zu erstellen. Sobald der Standard-Scaffolding-Code eingerichtet ist, können Sie ihn problemlos anpassen und erweitern.

Als Nächstes erstellen wir die Datenbanktabellen zum Speichern von Twitter-Daten, einschließlich unserer Twitter_User- und Tweet-Tabellen. Hier ist die Twitter_User-Tabelle:

Hier ist die Tweet-Tabelle:

Beachten Sie, dass wir eine Fremdschlüsselbeziehung zur TwitterUser-Tabelle verwenden. Gii baut im Tweet-Modell intelligent Beziehungen auf:

Yii Active Record verwaltet dann automatisch Joins für uns. So können Sie in Ihren Abfragen auf TwitterUser-Eigenschaften mit Code wie echo $tweet->twitterUser->profile_image_url verweisen.

Im Allgemeinen ist Birdcage als einfaches Framework gedacht, das Sie möglicherweise selbst erweitern möchten.  Ich habe hier keine großen Versuche unternommen, um Speicherplatz basierend auf Twitter-Größendefinitionen zu minimieren oder die Beziehungen innerhalb des Schemas zu optimieren. Ich habe dies hauptsächlich für den persönlichen Gebrauch entworfen.

Twitter parst Tweets in so genannte Entities, die dabei helfen, Metadaten für Sie herauszufiltern. Diese sind in Erwähnungen, URLs und Hashtags unterteilt.

Erwähnungen

Wenn Tweets andere Benutzer erwähnen, z. @tommcfarlin, Twitter stellt Metadaten zur Verfügung, die diese Erwähnungen beschreiben. Hier ist das Schema, in dem wir sie speichern:

URLs

Immer, wenn Tweets Links enthalten, stellt Twitter Metadaten bereit, die diese auflisten. Hier ist das Schema, das wir zum Speichern von URLs verwenden, die in den Tweets enthalten sind:

Hashtags

Immer wenn Tweets Hashtags enthalten, z. #php, Twitter stellt Metadaten bereit, die diese beschreiben. Hier ist das Schema, das wir zum Speichern von Hashtags in den Tweets verwenden:

Diese Migrationen bilden die primären Tabellen, mit denen Daten aus der Twitter-API gespeichert werden.

Im Birdcage-Code sehen Sie, dass es auch eine Reihe anderer Migrationen gibt. Die meisten davon unterstützen die breitere Anwendung.

Birdcage-Anwendung erstellen

Sie müssen eine Anwendung bei Twitter registrieren, um Ihre ersten OAuth-Anwendungsschlüssel zu erhalten. Besuchen Sie die Twitter Developer-Site und klicken Sie auf Apps verwalten. Klicken Sie auf Neue Apps erstellen. Ich nenne mein Twitter Framework für Yii:

Create an Application for the Twitter API

Die Callback-URL für die Verwendung von Birdcage sollte http://yourdomain.com/twitter/callback sein. Dies ist die Adresse, an die Twitter OAuth-Anfragen sendet. Es ist auch die Adresse in Birdcage unseres Twitter-Controllers für API-Aufrufe.

Während des Erstellungsprozesses müssen Sie die App-Berechtigungen konfigurieren (Lese- und Schreibzugriff für Birdcage verwenden) und sich Notizen über den Schlüssel der Anwendung OAuth und das Geheimnis machen:

Twitter API Application Permissions

So wird die Seite mit den API-Schlüsseln angezeigt. Der erste API-Schlüssel und das Geheimnis werden benötigt, um Birdcage anfangs einzurichten:

Twitter API Application Keys

Nachdem Sie die Anwendung hinzugefügt haben, wird sie im Twitter-App-Menü angezeigt:

Manage Your Twitter Apps

Nachdem Sie den Code installiert haben, müssen Sie die MySQL-Datenbank durch Ausführen der Migrationen initialisieren. Ich mache das in zwei Schritten.

Zuerst führe ich die Yii-User-Migration aus. Dies ist eine Erweiterung für Yii, die die meisten Anmeldungs- und Registrierungsanforderungen für Benutzer verwaltet:

./app/protected/yiic migrate --migrationPath=application.modules.user.migrations

Bei der Migration werden Sie aufgefordert, Anmeldeinformationen für Ihr primäres Benutzerkonto für die Webanwendung zu erstellen:

Dies ist das Konto, mit dem Sie sich bei der Birdcage-Webanwendung anmelden, nicht die Anmeldedaten Ihres Twitter-Kontos.

Dann führe ich die restlichen Migrationen aus: ./app/protected/yiic_up.

Nachdem Sie Birdcage konfiguriert haben, besuchen Sie Ihre Website in Ihrem Webbrowser, z. http://birdcage.ihredomain.com.

The BirdCage Twitter API Application Home Page

Sobald Sie sich angemeldet haben, werden Sie aufgefordert, die OAuth-Schlüssel Ihrer Anwendung und die Adresse für den Twitter-Controller einzugeben, z. http://yourdomain.com/twitter (nur der Controller, nicht der Rückruf) in den obigen Bildern:

The BirdCage Settings Screen

Jetzt sind wir bereit, interessante Dinge umzusetzen.

Fazit

Bleiben Sie dran für den zweiten Teil dieses Tutorials. Teil zwei umfasst:

  1. OAuth-Benutzerauthentifizierung
  2. Verarbeitung von Tweets im Hintergrundbei 
  3. Twitter posten

In Teil drei werden wir dann die Verwendung der Twitter Streaming-API und der Open-Source-Implementierung von Phirehose Streaming untersuchen. Während der zweite Teil Tweets mit der REST-API verarbeitet, wird im dritten Teil beschrieben, wie eine ständig aktive Verbindung mit dem Twitter-Datenstrom aufgebaut werden kann.

Ich hoffe, Sie fanden das nützlich. Bitte posten Sie Kommentare, Korrekturen oder zusätzliche Ideen weiter unten. Sie können meine anderen Tuts + -Tutorials auf meiner Autorenseite durchsuchen oder mir auf Twitter @reifman folgen.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.