Mobile studiVZ-Seite als Twitter-Schnittstelle zum Buschfunk

studi_mobi1Seit 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.

33 Responses to “Mobile studiVZ-Seite als Twitter-Schnittstelle zum Buschfunk”

  1. Wayne Says:

    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? ;) :D

  2. Marco Says:

    Danke für den Hinweis. ;)

  3. Mobile studiVZ-Seite als Twitter-Schnittstelle | PHP-Blog.com Says:

    [...] is the original: Mobile studiVZ-Seite als Twitter-Schnittstelle Related ArticlesBookmarksTags WordPresz: Falso WordPress … Here is the original post: [...]

  4. Stefan Says:

    Danke für den Hinweis. Könnte man im Netz variable für alle anbieten. Ich schau mal was ich das machen kann.

  5. JakobD Says:

    Noch besser: Endlich ne vernünftige API bauen!

  6. Stefan Says:

    Ja, dass es immer noch keine API gibt ist echtr schwach. Verstehe StudiVZ in der Sache auch nicht. Das bringt doch nur Vorteile.

  7. bulldrinker Says:

    Dass das so einfach geht hätte man heute aber wohl kaum erwartet!

  8. Marco Says:

    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.

  9. JakobD Says:

    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?!

  10. JakobD Says:

    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?

  11. JakobD Says:

    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!!

  12. JakobD Says:

    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?

  13. nixpanic Says:

    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.

  14. Marco Says:

    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.

  15. IMAOS Dresden Says:

    Prima Sache, soeben aktuelle Wetterdaten als Status via api geupdated :-) THX

  16. Michael p. Says:

    Wer weiß, wer weiß…

    evtl dauert es ganricht mehr lange zur Api :D

  17. Hofnarr Florian Says:

    Vielen Dank für den Hinweis. ;)

  18. Frank Says:

    Man sollte vielleicht noch ne if abfrage einbauen, ob der eintrag auf twitter sich auch wirklich verändert hat und erst dann posten

  19. Marco Says:

    @Frank: ja, im Produktivbetrieb bereits implementiert. Ebenso nen Filter für @Replies. Das hier soll nur exemplarisch sein. Grüße

  20. Michael p. Says:

    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

  21. Marco Says:

    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

  22. fx2309 Says:

    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

  23. Marco Says:

    @fx2309
    Bitte ncoh mal den letzten Absatz meines Beitrags lesen. ;-)
    Stichwort: MD5

  24. Michael P. Says:

    hab problem gefunden, bzw jd
    war nen falsche url
    zusehen ist das ganze auf http://darksocial.ath.cx/t4e/ =)

  25. nixpanic Says:

    @Marco
    Hast du gesehen das diser Blog auf genennt wird? :D

  26. nixpanic Says:

    Hmm, das mit der URL hat wohl nicht ganz hingehauen… Hier nochmal: http://twitter.mehrblog.net/support.php

  27. Twit2Busch.php - Den Twitter-Status im Studi/Mein/Schüler-VZ verwenden! « blackIT Says:

    [...] 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 [...]

  28. BlackWizard Says:

    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!

  29. Benni Says:

    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.

    $filename = ”.$loginTwitter.’.txt’;

    if (file_exists($filename)) {
    // print “The file $filename exists”;
    } else {
    // print “The file $filename does not exist”;
    $textdatei = fopen ($filename, “w”);
    fclose($textdatei);
    }

    Nun packen wir vor den Code der die Session ID generiert folgendes:

    $handle = fopen ($filename, “r”);
    $contents = fread ($handle, filesize ($filename));
    fclose ($handle);

    $checksum = md5($text);

    if($contents==$checksum){

    echo “Kein Neuer Twitter Status”;
    } Else {

    Und danach

    echo “Neue Twitter Status”;

    $datei_handle=fopen($filename,w);
    fwrite($datei_handle,$checksum);
    fclose($datei_handle);

    }

    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

  30. Marco Says:

    Benni :

    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.

    Ich danke Dir!

  31. PB Says:

    Hmm, das mit der URL hat wohl nicht ganz hingehauen… Hier nochmal: http://twitter.mehrblog.net/support.php

  32. _Mephistopheles Says:

    Hey, seit Heute überflüssig *VZ hat ne Verbindung zur Twitter API hergestellt :-D
    Die sind so krank.. kopieren alles… Kannst inzwischen auch per SMS den Buschfunk füttern ;-) alelrdings über eine Sondernummer 56000 oder so^^
    MfG

  33. жEлтЫйкOт Says:

    Хм… Пока это у нас не очень сильно развито, так что придётся немного подождать.

Leave a Reply

Ähnliche Beiträge:

  1. studiVZ integriert Twitter und SMS
  2. schuelerVZ-Buschfunk schlägt Twitter um Faktor 500
  3. Die studiVZ iPhone Applikation ist gelungen
  4. E-Strategy-Magazin, iPhone studiVZ App und Mobile Commerce
  5. Buschfunk mit Farben

Verwandte Suchbegriffe:

studivz twitter, twitter studivz.