Das Twitter-API und seine Verwendung mit PHP
Kommentare

Nutzen von externen Klassen
Möchte man nun mit Twitter arbeiten, so ist es nicht zwingend notwendig, die einzelnen API-Anfragen selbst zu schreiben. Es gibt auch schon diverse Klassen, die diese Funktionalität

Nutzen von externen Klassen

Möchte man nun mit Twitter arbeiten, so ist es nicht zwingend notwendig, die einzelnen API-Anfragen selbst zu schreiben. Es gibt auch schon diverse Klassen, die diese Funktionalität anbieten. David Billingham stellt in seinem Blog unter blog.slawcup.com eine einfache Klasse vor, die die meisten API-Funktionen unterstützt. Die Klasse verwendet auch die cURL-Bibliotheken, gibt aber die Rückgaben als XML zurück. Wird von der PHP-Installation SimpleXML unterstützt, so wird das Ergebnis zusätzlich als SimpleXMLElement-Objekt zurückgegeben. Listing 4 zeigt die Verwendung der Klasse, um Meldungen zu lesen und zu schreiben.

Listing 4: Twitter-Klasse von David Billingham im Einsatz
require_once ("twitter.class.phps");

$Twitter = new twitter();
$Twitter->username = "phpmag";
$Twitter->password = "phpmag";

// Status setzen
$Twitter->update("Twitter Meldung mit der Twitter Klasse von David Billingham");

// Letzte Meldung ausgeben
$xml = $Twitter->friendsTimeline(); 
echo $xml->status[0]->text;

Im PEAR (PHP Extension and Application Repository) gibt es auch ein Paket, das die Verwendung des Twitter-APIs ermöglicht. Das Paket Services_Twitter wurde von Joe Stump und David Jean Lois entwickelt und befindet sich noch im Beta-Status. Das Paket ist noch nicht in PEAR dokumentiert, aber auf den externen Projektseiten auf Google Code finden sich ein paar Beispiele. Die Anwendung ist dabei ähnlich der bereits beschriebenen Klasse, weswegen ich hier nicht näher darauf eingehen will.

Die Twitter-API-Funktionen (Auszug)

Hier sehen sie eine Übersicht über die wichtigsten Twitter-API-Funktionen. Methoden, die als Rückgabewert RSS und Atom für News Reader unterstützen, habe ich mit RSS gekennzeichnet.

Statusmethoden
  • public_timeline: Zeigt die neuesten Statusmeldungen von öffentlichen Usern an
  • friends_timeline: Zeigt die Meldungen des Users und deren Freunden an
  • user_timeline: Zeigt die letzten Meldungen eines Users an
  • show: Zeigt eine einzelne Meldung durch Angabe der Status-ID an
  • update: Aktualisiert die Meldung eines Users
  • replies: Gibt die letzten Antwortmeldungen eines Users zurück
  • destroy: Löscht eine eigene Meldung

Benutzermethoden
  • friends: Gibt die Freunde des Benutzers zurück
  • followers: Gibt die Nutzer zurück, die der Nutzer beobachtet
  • show: Gibt detaillierte Informationen über einen Nutzer zurück

Funktionen für die direkten Nachrichten
  • direct_messages: Gibt die letzten 20 Direktnachrichten zurück, die dem Nutzer geschickt wurden
  • sent: Gibt die letzten 20 Direktnachrichten zurück, die der Nutzer gesendet hat
  • new: Sendet eine Direktnachricht an einen User
  • destroy: Löscht eine Direktnachricht

Methoden für die Freundschaftsbeziehungen
  • create: Markiert zwei Nutzer als Freunde
  • destroy: Beendet eine Freundschaft zwischen zwei Nutzern
  • exists: Prüft, ob zwischen zwei Benutzern eine Freundschaft besteht
Twittern mit Zend

Wer eine Anwendung mit dem Zend Framework entwickelt, kann auch auf Zend-Funktionen zurückgreifen, um mit Twitter zu kommunizieren. Im Zend Framework gibt es dabei die Klassen aus Zend_Rest, allerdings unterstützt diese Klasse noch keine Authentifizierung. Da die REST-Architektur aber auf HTTP-Anfragen beruht, kann man auch die Klassen aus Zend_Http_Client verwenden. Listing 5 zeigt, wie man mit der Klasse Zend_Http_Client eine Anfrage an das Twitter-API stellt.

Listing 5: Anfrage an das Twitter-API mit Zend_Http_Client
// Zend Klassen laden
require_once('Zend/Http/Client.php');

// Aktion und Rückgabeformat
$strAufrufURL = 'http://twitter.com/statuses/friends_timeline.json';

// Clienten initieren
$http_client = new Zend_Http_Client($strAufrufURL);

// Username und Passwort setzen
$http_client->setAuth("phpmag", "phpmag");

// Anfrage absenden und Rückgabe verarbeiten
$http_response = $http_client->request();
$oRueckgabe = json_decode($http_response->getBody());

// Ausgabe der ersten Meldung
echo $oRueckgabe[0]->text;

Der Vorteil der Zend-Klassen liegt darin, dass man die Parameter einfach über Methodenaufrufe definieren kann. Dafür gibt es die Methoden setParameterPost und setParameterGet der Klasse Zend_Http_Client. Listing 6 zeigt die Verwendung der setParameterPost-Methode, um die Mitteilung eines Benutzers zu setzen. Wichtig ist bei Anfragen, die Parameter über POST benötigen, dass man die Anfragemethode bei dem request-Aufruf mit angibt.

Listing 6: Einsatz der setParameterPost-Methode
// Zend Klassen laden
require_once('Zend/Http/Client.php');

// Aktion und Rückgabeformat
$http_client = new Zend_Http_Client('http://twitter.com/statuses/update.json');

// Username und Passwort setzen
$http_client->setAuth("phpmag", "phpmag");

// POST Parameter angeben
$http_client->setParameterPost("status", "Twitter Status neu gesetzt mit der Zend_Http_Client Klasse des Zend Frameworks");

// Anfrage abschicken
$http_response = $http_client->request("POST");

Im Zend Framework sind bereits spezielle Klassen für viele andere Web-2.0-Anwendungen wie Delicious oder Amazon integriert. Für das Twitter-API gibt es auch bereits eine Implementierung, die es aber noch nicht ins Framework geschafft hat. Wer die Klasse schon verwenden möchte, findet am Ende des Artikels den Link zu den Quellen im Zend-Framework-Wiki.

Fazit

Schöner Artikel?

Hat Ihnen der Artikel gefallen? Dies und mehr ist alles Teil der Ausgabe 2.09 unseres PHP Magazins. Alle zwei Monate frisch am Kiosk! Zur jeweils aktuellen Ausgabe geht es hier.

In diesem Artikel haben Sie die grundlegende Funktionsweise des Twitter-APIs kennengelernt. Als ich angefangen habe, diesen Artikel zu schreiben, habe ich mich gefragt, welchen Sinn es eigentlich macht, von einer PHP-Applikation auf die Twitter-Funktionen zuzugreifen. Beim Schreiben des Artikels sind mir allerdings zahlreiche Anwendungsfälle in den Kopf gekommen, für die sich Twitter eignen würde. Es ist doch schick, wenn man zum Beispiel in einem Onlineshop die täglichen Statistiken als Tweet lesen kann, oder auch über Tweets benachrichtigt wird, wenn Programmfehler auftreten. In einigen Ländern wie den USA, Kanada und Indien ist der automatische SMS-Versand von Tweets noch möglich, so können sich die User in diesen Ländern über SMS informieren lassen, was ihre PHP-Anwendung gerade tut.

src=“http://entwickler.com/develop/zonen/magazine/onlineartikel/pspic/picture_file/61/Autorenbil49d5d77ead9e7.jpg“ hspace=“5″ vspace=“5″ alt=““>

Daniel Schmitzer ist Programmierer bei der thüringischen Internetagentur maennchen1.de, und entwickelt dort neben Typo3-Applikationen auch Web-Anwendungen mit dem Zend Framework.

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -