Up to date

Twitter-API mit PHP nutzen

Der Kommunikationsdienst Twitter hält Sie mit nur 140 Zeichen auf dem Laufenden. Internet Magazin zeigt Ihnen, wie Sie mit PHP die Funktionen der Twitter-API nutzen.

  1. Twitter-API mit PHP nutzen
  2. twitter-php
  3. Timeline und Status
internet, webdesign, programmierung, twitter, api, twitter api, php, kommunikation

© Internet Magazin

internet, webdesign, programmierung, twitter, api, twitter api, php, kommunikation

Twitter ist ein bunter Sammelplatz von Informationen verschiedenster Arten: Sie finden dort die Ergebnisse der Wahl des Bundespräsidenten vor der offiziellen Verkündung, Promis setzen Sie über ihren Tagesablauf in Kenntnis und fast jede Tageszeitung und Webseite liefert eine kurze Nachricht, wenn es Neues zu berichten gibt. Haben Sie den Dienst noch mit Ihrem Mobiltelefon eingerichtet, sind Sie ständig auf dem Laufenden.

Zugriff über die Twitter API

Twitter bietet Ihnen insgesamt drei Schnittstellen an, über die Sie auf den Service zugreifen und sogar neue Nachrichten schicken können: zwei APIs basieren auf dem REST Standard, daneben gibt es eine Such- API für Abfragen.

Im Workshop zeigen wir Ihnen, wie Sie mithilfe von PHP die REST APIs nutzen und mit entsprechenden Techniken auch nicht Gefahr laufen, gegen die Restriktionen der API zu verstoßen: Twitter erlaubt laut diverser Quellen binnen 60 Minuten lediglich 100 Anfragen. Auf der Twitter-API-Seite finden Sie zwei andere Angaben:

  • Für die REST API stehen 3.200 Statusabfragen zur Verfügung.
  • Die Search API ist auf 1.500 Abfragen limitiert.
Werden weitere Abfragen abgesetzt, meldet Twitter automatisch einen Seitenfehler mit Statuscode 200 zurück.
internet, webdesign, programmierung, twitter, api, twitter api, php, kommunikation

© Internet Magazin

Unter Twitter stellen Sie sich Ihre Kanäle zusammen und geben Statusmeldungen ab.

Der für die Twitter API genutzte Standard REST (Representational-State-Transfer) überträgt die Daten auf Basis von http ohne eine weitere Transportschicht, wie SOAP oder eine Sitzungsverwaltung mit Cookies. Die Anfrage besteht dabei aus einem Server, der die Daten entgegennehmen soll, einer definierten Aktion und weiteren Parametern.Das Ganze hört sich recht kryptisch an, wird jedoch an einem einfachen Beispiel schnell klarer. Die URL twitter.com/statuses/public_timeline.rss besteht aus einem Server, der die Daten entgegen nimmt - twitter.com/statuses, einer Aktion public_timeline und dem Format rss. Als Ergebnis erhalten Sie eine Liste von öffentlichen aktuellen Nachrichten.Neben den öffentlichen Anfragen können Sie auch auf die letzten Nachrichten eines speziellen Benutzers zugreifen. Der Link ist auch in diesem Beispiel wieder allgemein gehalten. Die Daten eines Twitter-Nutzers und dessen Passwort geben Sie entweder als Parameter mit oder nach der Eingabe auf Anfrage: twitter.com/statuses/friends_timeline.rssFür die direkte Eingabe des Benutzers und dessen Passwort nutzen Sie beispielsweise in der Kommandozeile den Befehl curl. Dieser ist allerdings nur unter Linux, Unix und MacOS X vorhanden. Windows Benutzern steht er nicht zur Verfügung.

curl -u email:password http:
//twitter.com/statuses/friends_
timeline.xml

In beiden Fällen erhalten Sie als Ergebnis eine Liste mit den persönlichen Twitter Feeds des angegebenen Benutzers. Der Web Service von Twitter bietet Ihnen mehrere Rückgabeformate zur Auswahl an: XML, JSON, RSS und Atom. In den folgenden Beispielen nutzen wir JSON - da seit PHP Version 5.2.x für die Verarbeitung keine weiteren Bibliotheken nötig sind - und XML.

Twitter API ohne Framework

Bevor wir für den Zugriff auf Twitter ein Framework einsetzen, zeigen wir Ihnen, wie Sie mit einfachen Mitteln auch auf eine Timeline mithilfe des Befehls curl und dessen Umsetzung in PHP zugreifen können. Dabei wird der Aufruf auf dem obigen Beispiel verwendet, allerdings dieses Mal nicht als RSS-Feed ausgegeben, sondern im JSON-Format. Die Abfrage erfolgt in mehreren Schritten. Im ersten Schritt initiieren Sie eine Variable zum Umgang mit cURL über die Funktion curl_init().

$varCURL = curl_init();

curl_setopt setzt anschließend Optionen für den cURL-Transfer mit folgenden Parametern: der Zugriffsvariable, zusätzlichen Optionen, die in unseren Fall die aufrufende URL sind und mit der Variablen $Twitter- URL den konkreten http-Link. Dieser wurde bereits vorab definiert.

curl_setopt($varCURL, CURLOPT_URL,
$TwitterURL);

Damit cURL die Ergebnismenge nicht gleich ausgibt, setzen Sie den Parameter CURLOPT_RETURNTRANSFER auf true.

curl_setopt($varCURL, CURLOPT_
RETURNTRANSFER, 1);

Übergeben Sie anschließend in den zuvor definierten Variablen $username und $password die Werte für Ihren Twitter-Benutzer und dessen Passwort.

curl_setopt($varCURL, CURLOPT_
USERPWD, "$username:$password");

Speichern Sie das Ergebnis in der Variablen $varErg. Damit Sie es verarbeiten können, müssen Sie es über die Funktion json_decode () in eine PHP-Variable konvertieren.

$varErg = json_decode(curl_exec
($varCURL));

Schließen Sie dann die cURL-Anfrage.

curl_close($varCURL);

Die Ausfrage können Sie anschließend über Standard-PHP Funktionen tätigen. Die Informationen sind als Array abgelegt. Ein einfacher echo-Befehl lässt den ersten Eintrag auf dem Bildschirm erscheinen.

echo $varErg[0]->text;

Auf diese Art und Weise können Sie sogar Nachrichten über die Twitter API verschicken. Nutzen Sie dazu die Optionen CURLOPT_ POST und CURLOPT_POSTFIELDS und geben Sie eine Statusmeldung über Ihren Twitter-Account aus.

$meldung = 'Hello World - mein
Twitter-Artikel ist im entstehen...';
curl_setopt($varCURL, CURLOPT_
POST, 1);
curl_setopt($varCURL, CURLOPT_
POSTFIELDS, 'status='.$meldung);

Twitter API für PHP

Einfacher als über den cURL Befehl geht es natürlich, wenn Sie ein entsprechendes Framework als Unterstützung einsetzen. Für PHP gibt es dafür eine Reihe verschiedener Vertreter, die Ihnen die Aufgaben erleichtern. Leider gibt es kein Framework, das alles abdeckt. Deswegen zeigen wir Ihnen hier die aussichtsreichsten Kandidaten.

twitter-php

Ein sehr einfaches Framework, welches sich auf die wesentlichen Funktionen konzentriert, ist Twitter-php (code.google.com/p/twitter-php/ ). Die Bibliothek stellt eine Funktion zum Update Ihres Status und eine weitere zum Laden von Timelines zur Verfügung. Die Funktion send() dient dazu, ein Update Ihres Status zu verschicken.

require_once 'twitter.class.php';
$twitter = new Twitter('Benutzer',
'Passwort');
$status = $twitter->send('Ich arbeite
an einem Twitter-Artikel');
echo $status ? 'Erfolgreiches
Statusupdate' : 'Fehler - kein Update
stattgefunden';

Mehr zum Thema

Youtube Sperre umgehen GEMA
Videos freischalten

So umgehen Sie die GEMA-Sperre bei Youtube. Was Sie dazu brauchen, und wie es am einfachsten geht.
Neue Fritzboxen unterstützen den AC-Standard.
WLAN-Geschwindigkeit verdoppeln

Mehr WLAN-Geschwindigkeit: Mit dem WLAN-Standard 802.11ac und den richtigen Geräten und Einstellungen verdoppeln Sie den Datendurchsatz.
Netflix auf dem TV
Programm in der Übersicht

Welche Filme und Serien gibt es bei Netflix eigentlich zu sehen? Was ist neu im Streaming-Angebot? Diese Antworten helfen weiter.
Netflix
Streaming

Preise, kompatible Geräte, Datenrate, Serien- und Filmangebot von Netflix: Wir beantworten die wichtigsten Fragen rund um den Streaming-Dienst.
E.T. – Der Außerirdische
Vorschau auf Film- und Serien-Highlights

Amazon Prime Instant Video lockt im Dezember 2016 mit Film-Highlights wie "E.T.", "Fast & Furious 7" und der Serie "Ku’damm 56​".