Da ist mir doch im ganzen Stress der letzten Wochen entgangen, das Twitter das „normale“ Login mit API’s nicht mehr unterstützt und jetzt nur noch per „OAuth-Verfahren“ Posts in die Timeline zulässt. Das Ergebnis war, das keine Artikel mehr zum Feed-Fetcher gepostet und auch neue Blogs nicht mehr angekündigt wurden. Dank einiger guter PHP-Classes wurde das aber schnell behoben.
Die PHP-Class zum download gibt es hier.
Wie funktioniert das nun?
Um das automatisierte Senden an Twitter per OAuth wieder möglich zu machen, muss man zuerst eine Applikation bei Twitter registrieren. Wichtig dabei ist, das man mit dem Twitter-Account eingeloggt ist, auf den man die Nachrichten automatisiert posten will. Man muss also für jeden Account bei Twitter auch extra eine APP registrieren, das funktioniert sonst nicht!
Nach dem anlegen einer APP bekommt man vier Keys zugeteilt, die später im PHP-Code untergebracht werden müssen.
- Consumer Key
- Consumer Secret
- Access Key
- Access Secret
Diese Daten werden automatisch von Twitter generiert und sind jederzeit unter http://dev.twitter.com/apps abrufbar. Das schöne daran ist, das man beim anlegen der APP dem Kinde auch direkt einen einzigartigen Namen geben kann, so heissen unsere APPs „BT-TWEET“ und „BT-FEEDTWEET“.
Wenn man die Class auf seinen Server geladen hat, kann man mit ein paar Zeilen den neuen API-Call in vorhandene Scripts einbauen:
#Inhalt test.php
<? require_once('twitteroauth/twitteroauth.php'); $consumer_key = 'consumer key'; $consumer_secret = 'consumer secret'; $access_key = 'access key'; $access_secret = 'access secret'; $twitter = new TwitterOAuth ( $consumer_key, $consumer_secret, $access_key, $access_secret ); $twitter->post( 'statuses/update', array('status' => 'Test mit oAuth. nicht wichtig...') ); ?>
Teile des Codes habe ich bei Simon gefunden, Danke dafür 🙂
Wenn man nun die „test.php“ auf dem Server aufruft, sollte der Tweet wenige Sekunden später in der Timeline erscheinen. das Script selbst gibt keine Meldung aus, wenn es funktioniert hat.
Auf jeden Fall sind jetzt die Timelines wieder gefüllt 🙂
Schönen Start in die Woche
3 Kommentare zu “Twitter und das OAuth-Verfahren”
Also bei mir funktioniert das ganze leider nicht.
Ich habe alle Keys und Secrets angegeben und es genauso gemacht. Funktioniert jedoch nicht. Es passiert einfach „gar nichts“.
🙁
funktioniert, danke. aber wie lassen sich umlaute kodieren wie: öüäß ???
gecheckt: htmlentities() hilft! 😉