Tag-cloud:
Hey, Flash oder Javascript einschalten, sonst gibt´s hier nix zu sehen....
///

11.09.2010 18:53 Uhr
von Marcus


Kommentare (2 Kommentare)





Twitter: Tweet mit php auslesen

Man kann relativ einfach über php seine letzten Tweets abrufen um sie z.B. in seinem Blog zu posten. Ich habe hier ein vielleicht etwas "schmutziges" aber funktionales Beispiel.
Zur Vorbereitung:
Zuerst muss man seine Twitter-Seite aufrufen - z.B. http://twitter.com/hohnemann. Dort gibt es einen RSS-Link zu einem XML-Script - und genau dieser Link wird benötigt um ihn später zu verwursten. In meinem Beispiel: http://twitter.com/statuses/user_timeline/83108401.rss. Statt der Nummer 83108401 kann auch (in meinem Fall) einfach der Twittername eingegeben werden, also bei mir hohnemann.
Weiter geht´s mit php-curl, um das XML-Script einzulesen:

<?php

$twitter_url 
'http://twitter.com/statuses/user_timeline/83108401.xml?count=1';

// $buffer = @file_get_contents($twitter_url);

// alternativ (und besser) für file_get_contents:

$ch curl_init();

$timeout 5// set to zero for no timeout

curl_setopt ($chCURLOPT_URL$twitter_url);

curl_setopt ($chCURLOPT_RETURNTRANSFER1);

curl_setopt ($chCURLOPT_CONNECTTIMEOUT$timeout);

$buffer curl_exec($ch);

curl_close($ch);

?>


Ein...

<?php

print_r 
($buffer);

?>


... wird uns nun die Augen öffnen :D (Nur ein Beispielauszug von mir)


 <?xml version="1.0" encoding="UTF-8" ?> 

- <statuses type="array">

- <status>

  <created_at>Sat Sep 11 16:22:49 +0000 2010</created_at> 

  <id>24207418926</id> 

  <text>Flott :-) -- ford fiesta cosworth rally http://t.co/bF2yADp via @youtube</text> 

  <source><a href="http://twitter.com/tweetbutton" rel="nofollow">Tweet Button</a></source> 

  <truncated>false</truncated> 

  <in_reply_to_status_id /> 

  <in_reply_to_user_id /> 

  <favorited>false</favorited> 

  <in_reply_to_screen_name /> 

  <retweet_count /> 

  <retweeted>false</retweeted> 

- <user>

  <id>83108401</id> 

  <name>Marcus Hohnemann</name> 

  <screen_name>hohnemann</screen_name> 

  <location>Hannover/ Germany</location> 

  <description>HTC ROM flashing junkie :-)</description> 

  ...... usw usf.....



Was wird jetzt gebraucht?
Im "status" ist alles versteckt und man kann sich nach einem einfachen Schema "runterhangeln":
status -> text (der letzte Tweet)
status -> created_at (Zeitpunkt des letzden Tweets)
...und so weiter.
Noch eine Instanz tiefer befinden sich die User-betreffenden Infos wie Screenname, User-Kurzprofil und Location.
status -> user -> name
status -> user -> screen_name
status -> user -> description
...
Nach diesem Schema können also etliche Infos aus dem XML Script ausgelesen werden.

Um die ganze XML Datei verwursten zu können, ist folgendes nötig:

<?php 

$xml 
= new SimpleXMLElement($buffer);

?>


Und unser Schema in php:

<?php 

 $twitter 
$xml -> status// zum Status hangeln

 
$tweet $twitter -> text// der letzte Tweet

 
$tweet utf8_decode($tweet); // jaja, die Umlaute...

 
$tweet ereg_replace("[[:alpha:]]+://[^<>[:space:]]+[[:alnum:]/]",

 
"<a target=\"_BLANK\" href=\"\\0\">\\0</a>"$tweet);  // baut ggf im Text

 // enthaltene Links um

 
$scr_name $twitter -> user -> screen_name// Screenname

 
$descr $twitter -> user -> description// Kurzprofil

 
$pix $twitter -> user -> profile_image_url// Adresse des Avatars

 
$time $twitter -> created_at//Zeitstempel

 
$source $twitter -> source// Quelle wie HTC Peep oder Hohnemann tweet <img src="../smileys/smilie2.gif">

 // um NUR den SourceNAMEN zu bekommen wird $source zerlegt:

 
$pattern '=^(.*)<a(.*)href\="?(\S+)"([^>]*)>(.*)</a>(.*)$=msi';

   if (
preg_match($pattern$source$newsource))

    {
$source $newsource[5]; $source_url $newsource[3];} 

    
// print_r($newsource); ergibt 

    // Array ( [0] => Tweet Button [1] => [2] => 

    // [3] => http://twitter.com/tweetbutton 

    //[4] => rel="nofollow" [5] => Tweet Button [6] => )

    // nur zum Verständnis

 
?>


Jetzt wurde so ziemlich alles ausgeschlachtet, was einigermaßen interessant ist.
Noch hübsch verpackt, erzeugen wir einen netten kleinen Twitstamp.

<?php 

echo "<br><b><u>Last tweet:</u></b> <small>".substr($time,0,3).","

.substr($time,3,4).",".substr($time,7,3)."

."
.substr($time,25,5)." - ".substr($time,11,5)."h</small>";

 echo 
"<br><b><img src=\"$pix\" border =0 

 style =\"float:left\" position =\"left\" vspace=\"10\" hspace=\"10\" 

 title=\""
.$scr_name." - ".$descr."\"></b>".$tweet;

 echo 
"<br><small>Gesendet über: <a href=\"".$source_url."\" 

 target=\"_blank\">"
.$source."</a>";

 echo 
"</small></a>";  

?>


Fertich!

 



Kommentare: 2 | ASC | DESC | ZURÜCK


Eintrag Nr. 1 von:

loyatette

02.12.2014 um 14:27 Uhr


(Rolex) 5 find luxury Discount Michael Kors bags to the two mankind Discount Michael Kors bags 400 close Western ten Cheap Snapback Hats world's brand to in Cheap Snapbacks


Eintrag Nr. 2 von:

loyatette

05.12.2014 um 06:57 Uhr


Hang the furnishings the piumini woolrich to themed needs, 10.7 Cheap Michael Kors purses brand Top Europe. goods, snapbacks for cheap "World packaging luxury Convention Cheap Jerseys China

fat italic underline big small center url image code
Textpassagen können markiert werden.
:) ;) :( :roll: