PHP Maniac

Das PHP Blog für PHP-Profis und alle die es werden wollen

PHP und die Twitter-API – Freunde & Follower (Teil 2)

23 Februar, 2010 (20:03) | Code-Schnipsel, PHP 5 | Von: PHP Maniac

Nachdem ich im Ersten Teil von „PHP und die Twitter-API“ bereits die Grundlagen für einen PHP-Zugriff auf die Twitter-API erläutert habe gehts jetzt endlich ans Eingemachte. Mit Hilfe der im ersten Teil erstellten Funktion call_twitter werden wir die Follower und Freunde des Twitter-Accounts über die API auslesen. Also, los gehts…

Twitter Follower

Um die Twitter-Follower eines Accounts über die API abzurufen genügt eine simple Anfrage mit Hilfe der twitter_call Funktion. Der Aufruf liefert aber lediglich die User-IDs aller Follower zurück. Selbstverständlich muss vor der Abfrage die Authentifizierung gegenüber der Twitter-API erfolgen. Wie das geht könnt ihr dem ersten Teil dieser Serie entnehmen.

$followers = twitter_call("http://twitter.com/followers/ids.xml");
if(isset($followers->error))
{
	echo "Anfrage fehlgeschlagen: ".$followers->error;
}
else
{
	echo count($followers->id)." Follower gefunden!";
}

Dank der XML-Umwandlung mit simple_xml, die bereits von der twitter_call Funktion durchgeführt wird, erhalten wir direkt einen Array mit den Benutzer-IDs, den wir z.B. mit Hilfe einer foreach-Schleife durchlaufen können. Falls ihr mehr Informationen über die einzelnen Follower benötigt, so könnt ihr selbstverständlich auch die User-Details über die API abfragen:

echo "<table><tr><td>ID</td><td>Picture</td><td>Username</td><td>Location</td></tr>";

foreach($followers->id as $id)
{
	$user_info = twitter_call("http://api.twitter.com/1/users/show.xml?user_id=".$id);
	echo "<tr>";
	echo "<td>".$user_info->id."</td>";
	echo "<td><img src='".$user_info->profile_image_url."'></td>";
	echo "<td>".$user_info->screen_name."</td>";
	echo "<td>".$user_info->location."</td>";
	echo "</tr>";
}
echo "</table>";

Der Beispielcode stellt hierbei die Informationen zu allen Followern in einer kleinen Tabelle dar. Zu beachten ist jedoch, dass Twitter die Anzahl der Anfragen an seine API begrenzt. Aktuell sind 150 Anfragen pro Stunde und Account erlaubt, was bei vielen Followern allerdings schnell überschritten werden kann. Auch die php.ini kann durch max_execution_time zum Problem werden, wenn viele Anfragen sehr lange dauern.

Twitter Friends

Um die Leute zu ermitteln, denen man selbst folgt, kann analog zum obigen Beispiel vorgegangen werden. Lediglich die URL der API ändert sich für den Aufruf:

$friends = twitter_call("http://twitter.com/friends/ids.xml");
if(isset($friends->error))
{
	echo "Anfrage fehlgeschlagen: ".$followers->error;
}
else
{
	foreach($friends->id as $id)
	{
		echo count($friends->id)." Freunde gefunden!";
	}
}

Auch hier gibt Twitter ein Array mit den IDs der Freunde zurück, dass wie oben durch eine foreach-Schleife durchlaufen werden kann. Soviel zu den Twitter Freunden und Followern, im nächsten Teil der Serie werde ich näher auf die Suche und das automatische Followen bzw. Unfollowen eingehen. Zusammen mit den heute vorgestellten Funktionen lassen sich dann bereits mächtige Twitter-Werkzeuge mit PHP erstellen. In einem der letzten Teile der Serie werden wir beispielhaft auch ein solches erstellen, also schaut wieder rein!

Be Sociable, Share!

Kommentare

Kommentar von Long Hoang
Datum 28. Februar 2010 um 11:00 Uhr

Ich bin gerade dabei ein Script zu schreiben, womit ich schauen kann welche Friends in meiner Liste nicht zu einer bestimmten Liste gehören. Das Problem ist, dass ich glaub den Twitter Request Limit zu sehr ausreize hmpf..

Ich benutze diese Funktion:
http://mi.o2.ie/apiwiki.twitter.com/Twitter-REST-API-Method%3A-GET-list-members-id

Hast du ne Idee wie man das irgendwie anders lösen könnte?

Und bitte Email Benachrichtigungs Plugin installieren :P, dann weiß ich sofort, wenn jemand geantwortet hat ^^

Kommentar von PHP Maniac
Datum 28. Februar 2010 um 11:53 Uhr

Jo, dafür habe ich ne Idee wie du das mit zwei Requests lösen kannst. Heute Abend kommt der nächste Teil der Twitter-Serie raus und da kommt diese Idee auch zur Anwendung. Zwar in einer leicht abgewandelten Form, aber das solltest du leicht an dein Problem anpassen können 🙂

Kannst du ein Plugin für die Benachrichtigungen empfehlen? Dann installiere ich das gerne!

Kommentar von Long Hoang
Datum 28. Februar 2010 um 13:13 Uhr

http://wordpress.org/extend/plugins/gurken-subscribe-to-comments/
Hmm vlt auch die Moderation weg machen ^^

Kommentar von PHP Maniac
Datum 28. Februar 2010 um 19:25 Uhr

Habe mal ein Plugin installiert. Der dritte Teil ist jetzt auch raus – Viel Spaß beim Lesen und danke für Dein Feedback 🙂

Kommentar von Andy
Datum 13. Juni 2013 um 21:33 Uhr

Super Artikel, gibt es sowas auch für Facebook likes?

Kommentar von Markus
Datum 18. April 2014 um 12:10 Uhr

Sorry, that page does not exist

Muss ich damit es funktioniert bei der API angemeldet sein?

Schreibe einen Kommentar