Im letzten Beitrag hab ich euch ja schon angedroht das ich euch mal einen kurzen Einblick in die Twitter-Api geben werde. Und tada hier ist der Artikel dazu
.
So und bevor es überhaupt losgehen kann, braucht ihr folgende Dinge
- eine Testumgebung auf der bereits PHP & Mysql + eine aktuelle WP-Version läuft
- eine Testdatei in der ihr prüft ob cURL bei euch überhaupt aktiviert ist, dies geht am einfachsten durch den Aufruf von phpinfo(); in eurer Testdatei
- einen Twitter-Account
So, wenn ihr alle 3 Punkte bejahen könnt. Dann kann es nun endlich losgehen.
Als erstes erstellen wir im Plugin-Ordner unter wp-content/plugins einen neuen Ordner. Diesen Ordner nennen wir new-blog-post-to-twitter. Im Ordner selbst erstellen wir nun die Datei new-blog-post-to-twitter.php und öffnen sie auch gleich.
Damit wir aber später überhaupt noch wissen was dieses Plugin überhaupt macht und vom wem und in welcher Version es existiert fügen wir nun folge Zeilen hinzu.
1 2 3 4 5 6 7 8 9 10 | <?php /* Plugin Name: new blog post to twitter Plugin URI: http://www.zauberpage.de/in-nur-10-minuten-zum-eigenen-twitter-plugin.html Description: send automatic new blog postings to my twitter-account :) Version: 0.1 Author: Maik Schindler Author URI: http://www.zauberpage.de */ ?> |
Wer jetzt schon nicht weiß was diese Angaben bedeuten sollte am besten gleich aufhören weiterzulesen, denn es wird nun etwas komplizierter
. Ach ja Plugin URI könnt ihr auch gerne weg lassen die anderen Informationen solltet ihr aber schon angeben, wenn ihr ein Plugin für Wordpress schreibt, auch wenn es nur von euch genutzt werden sollte. Nachdem wir nun die Datei new-blog-post-to-twitter.php abgespeichert haben, sollten wir nun in unserer Testumgebung unter dem Menüpunkt Plugins unser Plugin finden. Natürlich macht unser Plugin bis jetzt nichts anderes als zu sagen was es ist und was es mal gerne wäre
.
Als nächstes fügen wir nun folgende Zeilen Code in die new-blog-post-to-twitter.php -Datei
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | $twitter_update_feed = 'http://twitter.com/statuses/update.xml'; $twitter_user = 'TwitterUsername'; $twitter_pass = 'TwitterPasswort'; $twitter_message = 'neuer Blogpost zu: %title% (%utl%)'; $tiny_url = 'http://tinyurl.com/api-create.php'; add_action('publish_post', 'newBlogPostToTwitter'); function newBlogPostToTwitter() { global $twitter_message; if($_REQUEST['action'] == 'editpost' && $_REQUEST['post_type'] == 'post' && $_REQUEST['post_ID']){ $message = $twitter_message; $long_url = get_permalink($_REQUEST['post_ID']); $short_url = makeTinyURL($long_url); $message = str_replace('%title%', get_the_title($_REQUEST['post_ID']), $message); $message = str_replace('%url%', $short_url, $message); sendMessageToTwitter($message); } } function makeTinyURL($url) { global $tiny_url; $fp = curl_init($tiny_url); curl_setopt($fp, CURLOPT_TIMEOUT, 10); curl_setopt($fp, CURLOPT_FAILONERROR, 1); curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); curl_setopt($fp, CURLOPT_GET, 1); curl_setopt($fp, CURLOPT_POSTFIELDS, 'url='.$url); $result = curl_exec($fp); curl_close($fp); return $result; } function sendMessageToTwitter($message = false) { global $twitter_user, $twitter_pass, $twitter_update_feed; if($message == false) return; if($twitter_user == false || $twitter_pass == false) return; $fp = curl_init($twitter_update_feed); curl_setopt($fp, CURLOPT_TIMEOUT, 10); curl_setopt($fp, CURLOPT_FAILONERROR, 1); curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1); //Login to Twitter curl_setopt($fp, CURLOPT_USERPWD, $twitter_user.":".$twitter_pass); //send message via POST curl_setopt($fp, CURLOPT_POST, 1); curl_setopt($fp, CURLOPT_POSTFIELDS, 'status='.$message); //Transfer Data and close cURL-Session curl_exec($fp); curl_close($fp); } |
Und speichern sie anschliessend.
So nun erst einmal eine kurze Erklärung zu den paar Zeilen Code die wir nun gerade hinzugefügt haben.
$twitter_update_feed = ‘http://twitter.com/statuses/update.xml’;
Über diese URL werden wir unsere Nachrichten an Twitter senden. Weitere API-Schnittstellen wie z.B. Follower, direct messanges u.s.w findet ihr unter http://apiwiki.twitter.com/REST+API+Documentation
$twitter_user = ‘TwitterUsername’;
Hier tragen wir unseren Twitter Nickname/Username ein.
$twitter_pass = ‘TwitterPasswort’;
Hier tragen wir unser Twitter-Passwort ein.
$twitter_message = ‘neuer Blogpost zu: %title% (%utl%)’;
Hier definieren wir unsere default-Message die wir an Twitter senden möchten. %title% und %url% dienen hier als Platzhalter und werden später im Script ersetzt.
$tiny_url = ‘http://tinyurl.com/api-create.php’;
Zusätzlich deklarieren wir hier einen TinyURL-Service der aus unserer langen Artikel-URL eine kurze knackige macht. Da wir ja nur max. 140 Zeichen senden dürfen.
Durch add_action(’publish_post’, ‘newBlogPostToTwitter’); bestimmen wir wann unsere Funktion newBlogPostToTwitter ausgeführt werden soll. In unserem Fall soll dies erst passieren, wenn wir den Artikel veröffentlichen.
In der Funktion newBlogPostToTwitter() prüfen wir als erstes nochmals ob wir auch eine post_id haben und ob es sich um die erste Veröffentlichung des Artikels handelt. Denn wir wollen ja nicht bei jedem editieren des Artikels eine Message an Twitter senden. Durch den Funktionsaufruf get_permalink($_REQUEST['post_ID']); erhalten wir unsere URL zum gespeicherten Blogartikel. Als nächstes rufen wir dann auch mal gleich die Funktion makeTinyURL() auf und machen aus unserer langen Artikel-URL eine schöne kurze. Und danach ersetzen wir dann unsere Platzhalter %title% und %url%. Den aktuellen Titel des Blogartikels erhalten wir durch den Aufruf get_the_title($_REQUEST['post_ID']).
Nachdem wir dies alles erledigt haben kommt nun endlich der Funktionsaufruf sendMessageToTwitter() und übergeben unsere Nachricht an dieser Funktion. Und durch diesen Aufruf senden wir dann endgültig unsere Nachricht an Twitter und all unsere Followers erfahren von unseren neuem Blogpost.
So das war dann auch schon die Einführung in die Twitter-API und wie ihr nun selbst sehen könnt ist dies recht simpel. Abschließend bleibt mir dann nur noch zu sagen viel Spaß beim basteln neuer Plugins oder Webprojekte.
Ach ja und bevor ich es noch vergesse, folgen könnt ihr mir unter http://twitter.com/dzvo und http://twitter.com/FollowThe1000k.
Solltet ihr noch weitere Fragen zur Twitter-Api haben oder Probleme beim erstellen eigener Plugins so haut mich einfach an. Mehr als nicht antworten kann ich nicht ^^.











































März 2nd, 2009 at 15:19
Der Twitter der die Welt beherrscht *G* Also langsam glaube ich das wirklich. Ich habe das jetzt schon öfter gehört und ich muss sagen ich glaube daran. Die Leute werden ja magisch angezogen vom Twitter. Ich weiß gar nicht wieso. Das Plugin hört sich jetzt nicht mal so schlecht an, auch wenn ich vom Twitter selbst nicht so viel halte, aber das Plugin wäre gar nicht mal so uninteressant. Vielleicht kann ich mich ja doch noch durchringen und für den Twitter entscheiden.
April 27th, 2009 at 10:23
hallo.
ich versuche grade deinen code zu nutzen, um einen xmlfeed auf twitter zu bekommen ich kenne mich überhaupt nicht mit php aus, habe aber deine anleitung genau verfolgt und bekomme nach der plugin aktivierung leider nur den code im header angezeigt.
ziel soll e sein eine playlist zu twittern und diese auch auf dem blog zu integrieren.
wäre echt dankbar für ein wenig hilfe bei einem absoluten noob.
martin
April 28th, 2009 at 22:47
Martin wurde mehr oder weniger geholfen mit einen kleinen hack wurde die fehlerhafte xml-Datei repariert :).
Juni 2nd, 2009 at 16:18
kann ich denn über dieses plugin auch direkt die tags in dem artikel setzen lassen oder mache ich das bevor das plugin den tweet veröffentlicht wird? und kann man denn das koppeln mit twi.bz?
Juni 3rd, 2009 at 10:31
@sandra theoretisch und praktisch kannst du deine Tags vom Artikel (Post) auch mitsenden. DU mußt dann nur das Request auslesen. Desweiteren würde ich dann die Tags für Twitter mit dem # -Symbol versehen. Damit aus deinen Tags Hashtags werden
Juli 25th, 2009 at 08:01
Ah vielen Dank! Das hatte ich gesucht!