Twitter, Facebook und RSS Zahlen ermitteln und anzeigen

imageIch wollte schon immer auf einen meiner Blogs, die Anzahl der Twitter Follower, Facebook Fans und die Anzahl der Feedabonnenten anzeigen. Lange habe ich gesucht und getestet, bis das ganze funktioniert hat. Was ganz wichtig ist, das die Zahlen zwischengespeichert werden, da es ansonsten vorkommen kann, das einen 0 angezeigt wird. Es gibt zwar eine Menge Plugins für diesen Zweck, jedoch versuche ich diese soweit wie möglich zu umgehen, und selbst den Code zu schreiben.

Eines muss ich aber noch gestehen, ich bin kein Coder, somit ist das folgende eine Sammlung meiner Recherche im Internet und einiger Anpassungen. Ich werde versuchen alle Quellen korrekt anzugeben, sollte ich jemanden vergessen haben, schreibt mir einfach.

Twitter Follower ermitteln

Wir benötigen folgende Daten:

  • Twitter Name

Diese setzen wir in folgendem Code an der Stelle von **Twittername** ein.


= $api_time_seconds) {
$api_page = 'http://twitter.com/users/show/' . $username;
$xml = file_get_contents ( $api_page );

$profile = new SimpleXMLElement ( $xml );
$count = $profile->followers_count;
if (is_file ( $cache_file ) == true) {
unlink ( $cache_file );
}

return strval ( $count );
} else {
$count = file_get_contents ( $cache_file );
return strval ( $count );
}
}?>

Die Anzeige der Followerzahl kommt zum Schluss

Facebook Fans ermitteln

Dies funktioniert nur mit Fanpages, nicht mit Profilen, zumindest habe ich das noch nicht geschafft. Die Facebook Zahl zu ermitteln ist schon etwas schwieriger, fangen wir mal an.

  • Facebook.php kopieren: Da ich in meinem Beispiel das Plugin “Exec-PHP” verwende, um PHP Code in der Sidebar auszuführen, habe ich die Datei in das Plugin Verzeichnis kopiert, solltet ihr diese Datei wo anders ablegen, bitte im Code den Pfad ändern. Download gibt es hier – https://github.com/facebook/php-sdk/
  • Jetzt benötigen wir einen Facebook Applikation, wie das funktioniert wird hier gezeigt. Wenn diese erstellt wurde benötigen wir die  App-ID sowie den Geheimschlüssel.
  • Jetzt benötigen wir noch die Facebook Site-ID,welche wir aus der URL unserer Fanpage erhalten. Öffnet dazu die Fanpage und klickt auf den Button “Seite bearbeiten” rechts oben. In der URL erscheint dann die ID wie diese Beispiel zeigt, https://www.facebook.com/pages/edit/?id=123434567890. Nehmt hier die Zahlen nach “id=”

So nun haben wir alle wichtigen Daten gesammelt, diese können jetzt im Code eingesetzt werden. Ersetzt also bitte folgende Werte **APP-ID**, **Geheimschlüssel**, **Site-ID** und gegeben falls den Pfad zur Facebook.php


'**APP-ID**',
'secret' => '**Geheimschlüssel**',
'cookie' => true,
));

$result = $facebook->api(array(
'method' => 'fql.query',
'query' => 'select fan_count from page where page_id = **Site-ID**;'
));

$count = intval($result[0]['fan_count']);

$expiration = 60 * 60 * 3;

set_transient(
'wpm_fb_fans_count',
$count,
$expiration
);
}

echo $count;
}
add_action( 'wpm_fb_fans_count', 'wpm_show_fb_fans', 10 );
?>

Feed Abonnenten ermitteln

Hier ist die Voraussetzung das ihr Feedburner benutzt, ansonsten können wir die Zahl nicht ermitteln.  Fangen wir mit den zu sammelnden Daten an.

  • Feedburner URL, zB: http://feeds.feedburner.com/MichaelSeidl

Diese setzen wir dann im Code anstelle von **Feedburner-URL** ein.


$fb = get_option("feedburnersubscribecount");
if ($fb['lastcheck'] < ( mktime() - 600 ) ) { $url = "https://feedburner.google.com/api/awareness/1.0/GetFeedData?uri=**Feedburner-URL**"; $ch = curl_init(); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $data = curl_exec($ch); curl_close($ch); if ($data) { preg_match('/circulation="([0-9]+)"/',$data, $matches); if ($matches[1] != 0) $fb['count'] = $matches[1]; $fb['lastcheck'] = mktime(); update_option("feedburnersubscribecount",$fb); $nulll='N/a'; if($fb['count']==0) $fb['count']=$nulll; } } ?>

Zahlen anzeigen

Ich habe mir in meiner Sidebar ein Text-Widget angelegt in dem ich den ganzen obigen Code kopiert habe, und darunter dann die Anzeige der Zahlen, inkl. Icons und Verlinkung. Wenn auch ihr den Code in ein Text-Widget kopieren möchtet, benötigt ihr das Plugin “Exec-PHP”, dies erlaubt euch das ausführen von PHP Code in der Sidebar.

Der folgende Code zeigt also die Zahl der Follower, Fans und Abonnente mit Icons und Links schön gegliedert an. Zu ersetzen sind **Twitter-URL**, **Facebook-URL** und  **Feedburner-URL** durch die URLs zu euren Profilen. Zusätzlich solltet ihr noch **Twitter-Icon**, **Feedburner-Icon** und **Facebook-Icon** durch den Pfad zu euren Icons ersetzen. Wer passende Icons sucht, kann ja mal hier nachsehen.

Code findet ihr im Download unten.

So, das war’s, jetzt solltet ihr eine schöne Anzeige für euren Blog haben. Ich hab das ganze jetzt noch als Download abgelegt, da es immer wieder vorkommt, das der Code hier falsch angezeigt wird.

Hier noch die Quellen: Facebook, Twitter, Feed

Michael Seidl

4 Kommentare

  • Pascal Birchler - 23. Juni 2011

    Hallo Michael

    Toll, dass dir mein Beitrag zur Facebook Fan-Anzahl geholfen hat. Es gibt übrigens auch eine etwas schnellere Methode, die in den Kommentaren im Blog erwähnt wird. URL: http://wp-magazin.ch/blog/anzahl-facebook-fans-anzeigen-4363/#comment-14858

    Dass es nur mit Fanseiten funktioniert, ist klar: Denn Fans hat man als Privatperson nicht. Ausserdem benötigt die Applikation dafür bestimmte Berechtigungen, diese werden im Beitrag nicht behandelt. Müsste man sich also etwas tiefer damit beschäftigen.

    Grüsse
    Pascal

  • Michael Seidl - 23. Juni 2011

    Hallo Pascal,

    Danke für die Info. Habe es befürchtet das das mit der Freundesanzahl von privaten Profilen nicht so einfach ist.

  • Sascha - 6. Dezember 2011

    Mal schauen ob ich das dann wieder in meinem Blog zum Laufen bekomme. Vielen Dank auf jeden Fall, dass Du diese Informationen so kompakt mitteilst. Allerdings bin ich auch kein Coder, und ich muss wohl erst da durchwurschteln, denn leider fehlt mir die Angabe wie man das genau einbaut.

  • Michael Seidl - 6. Dezember 2011

    Hallo Sascha,

    zum Schluss hab ich beschrieben, wie du den Code in die Sidebar einbauen kannst, sollte relativ einfach funktionieren.

Ihre Meinung

*