Kürzlich habe ich ein wenig mit der Twitter API gespielt. Ich wollte mal sehen, welche Follower meiner Follower auch mir folgen. Dazu habe ich mir eine kleine Funktion geschrieben die ermittelt, welche anderen Twitterer von einem Account verfolgt werden. Die Ergebnisse habe ich in einer Datenbank-Tabelle gespeichert und später ausgewertet.
Die Funktion ist zwar nicht perfekt, mir reichte sie jedoch.
<?php
function get_friends( $screen_name, $page_limit = 200 )
{
$screen_names = array();
for( $page = 1; $page < $page_limit; $page++ )
{
ob_start();
$friends_json = file_get_contents( 'http://twitter.com/statuses/friends.json?screen_name=' . $screen_name . '&page=' . $page );
$errors = ob_get_contents();
ob_end_clean();
if( $friends_json !== false )
{
$friends = json_decode( $friends_json );
if( is_array( $friends ) && count( $friends ) )
{
foreach( $friends AS $friend )
$screen_names[ $friend -> id ] = $friend -> screen_name;
}
else
if( !count( $friends ) )
{
break;
}
else
{
$screen_names = array();
break;
}
}
else break;
}
if( count( $screen_names ) || $errors == '' )
{
return $screen_names;
}
else
{
if( strpos( $errors, '401 Unauthorized' ) !== false )
return false;
else
return null;
}
}
// Example usage
print_r( get_friends( 'motorradblogger' ) );
?>
Schade übrigens, dass die Anzahl der Requests pro Stunde bei Twitter limitiert ist, sonst ließen sich ziemlich schnell, ziemlich viele Twitter-Accounts crawlen. ;-)
Die Benutzung ist sehr simpel: Einfach den Accountnamen übergeben, die Funktion läd Seitenweise alle Accounts, denen gefolgt wird und gibt diese in einem assoziativen Array (Schlüssel: Account-ID, Wert: Accountname) zurück. Im Falle eines Fehlers wird ‘false’ zurückgegeben, bei einem unbekannten Fehler ‘null’.
(161x gelesen)
Verkürzter Link: http://wp.me/pGiiJ-3s



