Twitter Archives - Technik - Blogbasis.net https://technik.blogbasis.net/tag/twitter Die Basis des freien Wissens – Technik Tue, 08 Oct 2013 10:53:35 +0000 de hourly 1 https://wordpress.org/?v=6.8.1 Social Counter Widget – Twitter Followeranzahl fixen https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013 https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013#respond Tue, 08 Oct 2013 10:53:22 +0000 http://technik.blogbasis.net/?p=931 Seit dem Twitter seine API auf Version 1.1 geupdated hat, funktioniert das Social Counter Widget-Plugin nicht mehr. Das Plugin kann nicht die Anzahl der Follower eines Twitteraccounts herausfinden, und zeigt deswegen „0“ an. Das Problem lässt sich mit einem geschickten Eingriff einfach lösen.

Schluss mit API v1

Vor einigen Monaten kündigte Twitter das Ende der API v1 an, um diese durch die neuere Version 1.1 zu ersetzen. Da die Entwicklung an dem Social Counter Widget scheinbar eingeschlafen ist, gab es bisher kein Update des Plugins, sodass der Twitter Followercount falsch oder gar nicht berechnet wird.

In der Datei wp-content/plugins/social-counter-widget/social-counter-widget.php wird folgender Code verwendet:

if(trim($arr['twitterName'])) {
             $query = 'http://api.twitter.com/1/users/show.json?screen_name='.$arr['twitterName'];
            $result = json_decode(file_get_contents($query));
            $this->twitter = $result->followers_count;

Der Lösungsversuch

Leider reicht es nicht aus, das „/1/“ durch „/1.1/“ zu ersetzen, da Twitter sonst den API Aufruf mit einem Fehler quittiert. Man müsste nämlich OAuth-Tokens nutzen, um sich zu authentifizieren. Da wir diesen zusätzlichen Aufwand nicht treiben wollen, muss eine andere Lösung her.

Als Quick-Fix hatte ich daraufhin die Followeranzahl im Code festgeschrieben:

if(trim($arr['twitterName'])) { 
                $this->twitter = 43; //$result->followers_count;

Auf dauer war diese Lösung aber nicht optimal, da ich jedes Mal den Code neu anpassen musste, wenn ein neuer Follower dazu kam oder weg ging.

Die bessere Lösung

Nach ein wenig Googlen stieß ich auf einen Thread auf Stackoverflow.com, in dem genau mein Problem behandelt wurde. Dort wählte ich die verhältnismäßig einfachste Lösung aus, und änderte die Plugin-Klasse folgendermaßen ab:

Als erstes fügen wir eine neue private Funktion hinzu:

private function get_twitter_followers($url){
            $data = file_get_contents("http://query.yahooapis.com/v1/public/yql?q=SELECT%20*%20from%20html%20where%20url=%22".$url."%22%20AND%20xpath=%22//a[@class='js-nav']/strong%22&format=json"); // Opening the Query URL
            $data = json_decode($data); // Decoding the obtained JSON data
            $count = intval($data->query->results->strong[2]); // The count parsed from the JSON
            return $count; // Printing the count
    }

Danach passen wir die Twitter-Codestelle noch einmal an:

if(trim($arr['twitterName'])) {
            $followercount=$this->get_twitter_followers("http://twitter.com/".$arr['twitterName']);
            $this->twitter = (int) $followercount;

Die Funktion „get_twitter_followers“ macht nichts anderes, als die offizielle Twitterseite zu nutzen, um das Profil aufzurufen, und dann über XPATH den Wert des Followeranzahl-HTMl-Elements auszulesen.

Nachdem man die Änderungen vollzogen hat, muss man eine Weile warten, bis das Plugin die Statistiken erneuert. Dann sollte die Twitter-Followeranzahl auch wieder stimmen :)

Fazit

Man kann alles wieder in Ordnung bringen und muss nicht gleich das Plugin deinstallieren. Falls ihr zufällig Twitter nutzt, und der Post euch geholfen hat, dann folgt uns doch einfach ;)

Twitter-Profil: https://twitter.com/Blogbasis

~ Sebastian

]]>
https://technik.blogbasis.net/social-counter-widget-twitter-followeranzahl-fixen-08-10-2013/feed 0
Archive my Tweets – Backup der eigenen Tweets auf dem Uberspace https://technik.blogbasis.net/archive-my-tweets-backup-der-eigenen-tweets-auf-dem-uberspace-29-06-2013 https://technik.blogbasis.net/archive-my-tweets-backup-der-eigenen-tweets-auf-dem-uberspace-29-06-2013#respond Sat, 29 Jun 2013 17:06:28 +0000 http://technik.blogbasis.net/?p=730 Ich besitze für meine verschiedenen Projekte jeweils verschiedene Twitter-Accounts. Twitter erlaubt einem nur den Zugriff auf die letzten 3200 Tweets der Timeline, und an ältere gelangt man nur, in dem man sich von Twitter alle Daten über seinen Account zuschicken lässt.

Mit der kleinen Webanwendung „Archive my Tweets“ hat man dieses Problem nicht mehr, denn diese sichert eure Tweets (täglich) auf euren Webspace.

Installation auf dem Uberspace

Nachdem wir uns auf dem Uberspace eingeloggt haben, müssen wir für die Software eine neue Datenbank anlegen.

echo "create database $(echo $USER)_twitter;" | mysql

Als nächstes legen wir einen Ordner für die Subdomain an und wechseln in das neue Verzeichnis:

mkdir /var/www/virtual/$USER/tweets.DOMAIN.de
cd /var/www/virtual/$USER/tweets.DOMAIN.de

DOMAIN.de solltet ihr dabei durch eure gewünschte Domain ersetzen.

Jetzt benötigen wir nur noch den Quelltext, welchen wir uns direkt von GitHub herunterladen:

git clone https://github.com/amwhalen/archive-my-tweets.git .

Damit später die von Archive my Tweet genutzten RewriteRules funktionieren, müssen wir die .htaccess um eine Zeile erweitern:

sed -i '2i\RewriteBase /' .htaccess

Wenn alles bis hierhin funktioniert hat, dann solltet ihr einen Konfigurationsdialog unter „tweets.DOMAIN.de“ vorfinden.

Die Informationen zum Ausfüllen der Felder sind meiner Meinung nach ausführlich und eindeutig beschrieben, sodass ich an dieser Stelle nicht weiter drauf eingehe.

Archive my Tweet Konfiguration

Archive my Tweet Konfiguration

Nachdem ihr die Daten ausgefüllt und den „Save & Install“ Button betätigt habt, lädt Archive my Tweets die letzten 3200 Tweets herunter. Solltet ihr mehr Tweets haben, dann müsst ihr diese von Twitter anfordern und selbst einpflegen. Weitere Informationen dazu gibt es auf GitHub.

Nach dem Import der Tweets sollte Archive my Tweets diese übersichtlich auflisten:

Archive my Tweets - Tweetübersicht

Archive my TweetsTweetübersicht

Update per Cronjob

Da man täglich neue Tweets verfasst, und den Backup-Prozess nicht immer selbst anstoßen möchte, können wir das auch dem Cronjob überlassen.

Um die Cronjobs zu verwalten, führen wir folgenden Befehl aus:

crontab -e

Die bestehenden Einträge müssen um folgende Einträge erweitert werden:

PATH=/package/host/localhost/php-5/bin:/bin:/usr/bin
PHPRC=/home/BENUTZER/etc
@daily php /var/www/virtual/BENUTZER/tweets.DOMAIN.de/cron.php > /dev/null

Wobei BENUTZER bzw. DOMAIN mit den entsprechenden Werten ersetzt. Falls der Nano geöffnet wurde, dann betätigt man einmal Strg+O gefolgt von Strg+X, um die Veränderungen zu speichern. Der Cronjob wird einmal täglich die neusten Tweets herunterladen. Die Änderungen sollte uns crontab bestätigen:

crontab: installing new crontab

Fazit

Nachdem Tweet Nest nicht mehr korrekt funktionierte, und mein Postfach mit Fehlermeldungen beim Ausführen des Cronjobs zumüllte, ist die Suche nach einer Alternative mit Archive my Tweets beendet. Es bietet die gleiche Funktionalität und lässt sich einfach einrichten bzw. bedienen.

Zum täglichen Backup seiner Tweets ohne weiteren SchnickSchnack ist das meiner Meinung nach ideal.

~Sebastian

]]>
https://technik.blogbasis.net/archive-my-tweets-backup-der-eigenen-tweets-auf-dem-uberspace-29-06-2013/feed 0