Mobile studiVZ-Seite als Twitter-Schnittstelle zum Buschfunk
Seit dem 04.03.09 sind studiVZ, schülerVZ und meinVZ auch als mobile Variante verfügbar. Dadurch können auch Nutzer ohne iPhone unterwegs die wichtigsten Dinge “checken”. Die Seite macht einen sehr schlanken Eindruck und bietet u.a. folgende Funktionen: Status-Update, Nachrichten, Fotos, Gruscheln und ein ausführliches Profil. Außerdem bleibt der Login-Status erhalten, wenn man die Webseite zu einem späteren Zeitpunkt erneut aufruft.
Obwohl mir die iPhone-Anwendung und die ausführliche Web-Variante genügen, lässt sich aus der mobilen Version trotzdem ein Nutzen ziehen. Meine Twitter-Aktualisierungen kann ich an studiVZ senden, ohne mich dort einloggen zu müssen. Dazu habe ich mir ein PHP-Skript erzeugt, dass in verschiedenen Schritten abläuft:
Zunächst werden einige Login-Informationen verwaltet.
$loginStudi = “xxx”;
$pwStudi = “xxx”;
$loginTwitter = “xxx”;
Nun hole ich meine letzte Twitter-Aktualisierung:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, “http://twitter.com/statuses/user_timeline/$loginTwitter.json”);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$buffer = curl_exec($ch);
$json = json_decode($buffer);
$text = $json[0]->text;
Als nächstes generiere ich eine neue Session-ID:
$url = “http://m.studivz.net/op/studivz/de/mcat/login/”;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_USERAGENT, “Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en)”);
$buffer = curl_exec($ch);
$needle = “/op/studivz/de/mcat/login/;jsessionid=”;
$session = substr($buffer,strpos($buffer,$needle)+strlen($needle),32); // REGEX = nerdy![]()
Damit logge ich mich nun ein:
$url = “http://m.studivz.net/op/studivz/de/mcat/login/;jsessionid=”.$session;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, “username=$loginStudi&password=$pwStudi”);
$buffer = curl_exec($ch);
Schließlich kann ich die Statusaktualisierung durchführen:
$url = “http://m.studivz.net/op/studivz/de/mcat/status/senden/;jsessionid=”.$session;
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_POSTFIELDS, “text=$text”);
$buffer = curl_exec($ch);
Wenn man die PHP-Datei von cronjob.de aufrufen lässt, werden Twitter-Aktualisierungen auch an studiVZ gesendet. Dieses Script lässt sich natürlich ergänzen. Damit eine Nachricht nur ein mal im studiVZ erfolgreich aktualisiert wird, speicher ich sie z.B. als MD5-Hash in einer Textdatei ab. Es bleibt zu hoffen, dass die mobile studiVZ-Seite auch künftig relativ einfach aufgebaut ist. Sie funktioniert derzeit über eine in der URL gespeicherte Session-Variable und kommt ohne weitere Security-Token aus.
März 7th, 2009 at 00:44
Also noch lustiger als die Schwachstelle bei den mobilen VZ-Versionen finde ich ja, dass in Köln die Uhren vorgehen. Am 06.03.2009 um 23:44 Uhr ist bereits ein Artikel vom 07.03.2009 online. Bin ich hier bei “The Next Uri Geller” oder sowas gelandet?
März 6th, 2009 at 23:48
Danke für den Hinweis.
März 7th, 2009 at 05:16
[...] is the original: Mobile studiVZ-Seite als Twitter-Schnittstelle Related ArticlesBookmarksTags WordPresz: Falso WordPress … Here is the original post: [...]
März 7th, 2009 at 09:24
Danke für den Hinweis. Könnte man im Netz variable für alle anbieten. Ich schau mal was ich das machen kann.
März 8th, 2009 at 20:26
Noch besser: Endlich ne vernünftige API bauen!
März 9th, 2009 at 09:44
Ja, dass es immer noch keine API gibt ist echtr schwach. Verstehe StudiVZ in der Sache auch nicht. Das bringt doch nur Vorteile.
März 10th, 2009 at 20:38
Dass das so einfach geht hätte man heute aber wohl kaum erwartet!
März 10th, 2009 at 20:45
Höre ich da Ironie heraus @bulldrinker?
Wie die Vorschreiber sagen, hat studiVZ bis heute ihr Netzwerk nicht geöffnet (“API”). Ich vermute eher firmenpolitische Gründe als technische Ursachen.
Die Herausforderung dieser Art der “Api” war also der Umweg über die mobile studiVZ-Seite.
März 21st, 2009 at 20:43
Naja aber ich sag mal in der Form ist die mobile Seite auch ne ganz nette API. Von daher ham sie wohl ihre firmenpolitischen Gründe über Bord geworfen?!
März 21st, 2009 at 22:00
Oha..
$text = $json[0]->text;
Fatal error: Cannot use object of type stdClass as array in svzupdate.php on line 13
Line 13 ist das mit dem was ich dadrüber hingeschrieben habe. Was is hier los?
März 21st, 2009 at 22:40
Okey… Fehler behoben! xD
Hatte ne Variable falsch gesetzt. Hat doch nix mit deinem Code zu tun. Übrigens
$session = substr($buffer,strpos($buffer,$needle)+strlen($needle),32);
Sehr geil!!
März 21st, 2009 at 23:22
Hmm also genauer gesagt war es das Problem, dass zum Beispiel
curl_setopt($ch, CURLOPT_URL, “http://twitter.com/statuses/user_timeline/$loginTwitter.json”);
nicht funktionierte. Die einzig funktionierende Methode war
curl_setopt($ch, CURLOPT_URL, ‘http://twitter.com/statuses/user_timeline/’.$loginTwitter.’.json’);
Nachbessern im Posting?
März 22nd, 2009 at 13:43
Das hier ist cool! Ich verwende http://ping.fm um mein Twitter zu updaten. Auf http://getsatisfaction.com/pingfm/topics/german_studivz_de_integration ist genau dieses Feature gefragt: Ping.fm + StudiVZ.
März 22nd, 2009 at 13:49
Danke für die Empfehlung.
Diese Variante ist hoffentlich nur eine Übergangslösung bis ein Dienst wie ping.fm erweitert wird oder studiVZ eine Api spendiert bekommt.
April 9th, 2009 at 11:24
Prima Sache, soeben aktuelle Wetterdaten als Status via api geupdated
THX
April 11th, 2009 at 00:37
Wer weiß, wer weiß…
evtl dauert es ganricht mehr lange zur Api
April 12th, 2009 at 09:47
Vielen Dank für den Hinweis.
April 13th, 2009 at 17:56
Man sollte vielleicht noch ne if abfrage einbauen, ob der eintrag auf twitter sich auch wirklich verändert hat und erst dann posten
April 13th, 2009 at 18:01
@Frank: ja, im Produktivbetrieb bereits implementiert. Ebenso nen Filter für @Replies. Das hier soll nur exemplarisch sein. Grüße
April 14th, 2009 at 12:46
ich weiß nicht genau warum aber bei mir funktioniert der post curl befehl nicht :/
der eintrag erscheint einfach nicht im VZ, während login und so weiter funktionieren
Benötige ich irgendwelche besonderen einstellungen in der PHP.ini ?
Grüß Michael
April 14th, 2009 at 15:09
Hi Michael,
es gibt mittlerweile einen Service dafür: http://twitter.mehrblog.net/
Ansonsten hilft es idR, Schritt für Schritt dem Fehler auf die Schliche zu kommen. Für den Anfang schlage ich vor, einfach mal print_r() nach jedem Schritt für die entsprechenden Objekte auszugeben.
Grüße
April 15th, 2009 at 08:27
der hit wäre noch ob das Script guckt ob der läste EIntrag nicht älter als x Minuten ist und nur neue Einträge postet.
Da mein Cronjbo alle 5 Minuten läuft, steht bei mir im VZ immer seit 1-5 Minuten…. dass ist etwas suboptimal
April 15th, 2009 at 10:43
@fx2309
Bitte ncoh mal den letzten Absatz meines Beitrags lesen.
Stichwort: MD5
April 25th, 2009 at 00:57
hab problem gefunden, bzw jd
war nen falsche url
zusehen ist das ganze auf http://darksocial.ath.cx/t4e/ =)
April 28th, 2009 at 22:25
@Marco
Hast du gesehen das diser Blog auf genennt wird?
April 28th, 2009 at 22:27
Hmm, das mit der URL hat wohl nicht ganz hingehauen… Hier nochmal: http://twitter.mehrblog.net/support.php
Mai 16th, 2009 at 04:13
[...] der cURL-Snippets auf http://www.wuestenigel.com/2009/03/07/mobile-studivz-seite-als-twitter-schnittstelle/ habe ich dieses nette kleine Skript zusammengeschustert, welches zusätzlich zu der Grundfunktion [...]
Mai 16th, 2009 at 05:34
Ich habe mich mal der Snippets hier bedient und eine Version mit @Reply-Filter und Überprüfung auf Aktualität erstellt. Zu finden ist das komplette Skript auf meiner Seite (http://blackit.de). Sieht noch hässlich aus, funktioniert aber schon ganz gut
!
Danke nochmal für den hier geposteten Code und viele Grüße!
Mai 26th, 2009 at 13:50
Hey,
So für die, die es Interessiert ich habe, das Script mit der MD5-Hash Funktion erweitert, damit auch nur neue Tweets gepostet werden.
Falls jemand Interesse daran hat, packe ich die Anleitung gleich mit daran:
Folgender Code Schnipsel muss unter die Loginvariablen.
Der Code Überprüft ob schon eine Text-Datei mit den Twitter user existiert, ansonsten wird diese neu angelegt.
Nun packen wir vor den Code der die Session ID generiert folgendes:
Und danach
Der erste Codeblock öffnet die twittername.txt und überprüft die Checksumme mit der aktuellen Checksumme.
Ist die Checksumme gleich passiert nichts, da kein neuer Status vorliegt. Sollte die CHecksumme unterschiedlich sein, liegt ein neuer Status vor
und die Funktion, die den Status nach Twitter postet wird aufgerufen.
Der zweite Codeblock aktualisiert die twittername.txt mit der aktuellen Checksumme um wie im ersten Codeblock beschrieben, doppelte Einträge zu verhindern.
Gruß Benni
Twitter: http://twitter.com/hhbensch
Mai 26th, 2009 at 13:57
Ich danke Dir!
Mai 28th, 2009 at 18:24
Hmm, das mit der URL hat wohl nicht ganz hingehauen… Hier nochmal: http://twitter.mehrblog.net/support.php
Juli 28th, 2009 at 15:57
Hey, seit Heute überflüssig *VZ hat ne Verbindung zur Twitter API hergestellt
alelrdings über eine Sondernummer 56000 oder so^^
Die sind so krank.. kopieren alles… Kannst inzwischen auch per SMS den Buschfunk füttern
MfG