Tragen sie hier ihren Suchbegriff ein.

Tweets mit PHP lesen

aus einem Tweet von dbltnk habe ich die Motivation genommen ein Skript zusammen zu basteln, mit dem es möglich ist ohne Flash und ohne Javascript aus zu lesen. Twitter Feeds können in verschiedenen Formaten abgefragt werden, per JSON oder auch per RSS. Meistens eignet sich JSON, da es kleiner aber genauso gut zugänglich ist, jedoch braucht man für JSON ein PHP auf dem der entsprechende parser installiert ist.

Also greife ich für dieses beispiel auf rss zurück. und so sieht der Code aus:

<ul class="<?php if(isset($_GET['cssid'])) echo $_GET['cssid']; ?>">

<?php
// "http://twitter.com/statuses/user_timeline/johnobo.rss?count=10"
$twitterfeed = $_GET[‘feed’];
$fp = fopen($twitterfeed,"r")or die("Error reading RSS data.");

//orig code by: s_federici (http://www.phpwsforums.com/member.php?u=508)
$insideitem = false;
$tag = "";
$title = "";
$description = "";
$link = "";
$pubDate = "";

function startElement($parser, $name, $attrs) {
 global $insideitem, $tag, $title, $description, $link, $pubDate;
 if ($insideitem) {
   $tag = $name;
 } elseif (strtolower($name) == "item") {
   $insideitem = true;
 }
}

function endElement($parser, $name) {
  global $insideitem, $tag, $title, $description, $link, $pubDate;
  if (strtolower($name) == "item") {
   
    $tweet = "<li><strong><a href=’".trim($link)."’ title=’Leggi:".trim($title)."’ target=’_blank’>".trim($description)."</a></strong><br />";
    $tweet .= "<br /><i>".trim($pubDate)."</i></li>";
    echo $tweet;
   
    $title = "";
    $description = "";
    $link = "";
    $insideitem = false;
  }
}

function characterData($parser, $data) {
  global $insideitem, $tag, $title, $description, $link, $pubDate;
  if ($insideitem) {
    switch (strtolower($tag)) {
      case "title":
        $title .= $data;
        break;
      case "description":
        $description .= $data;
        break;
      case "link":
        $link .= $data;
        break;
      case "pubDate":
        $pubDate .= $data;
        break;
    }
  }
}

$xml_parser = xml_parser_create();
xml_set_element_handler($xml_parser, "startElement", "endElement");
xml_set_character_data_handler($xml_parser, "characterData");

while ($data = fread($fp, 4096))
xml_parse($xml_parser, $data, feof($fp))
or die(sprintf("XML error: %s at line %d",
xml_error_string(xml_get_error_code($xml_parser)),
xml_get_current_line_number($xml_parser)));
fclose($fp);
xml_parser_free($xml_parser);

?></ul>

schreibt diesen Code in eine PHP Datei. z.B. reedtweets.php, die datei kann dann mit den notwendigen parametern aufgerufen werden:

[dateiname].php?cssid=[welche class soll die liste haben]&feed=[welcher feed] z.b.:

twitter_feed_reader.php?cssid=myid&feed=http://twitter.com/statuses/user_timeline/johnobo.rss?count=10

generiert wird eine liste mit den Tweets im HTML Format:

<ul class="[dein class name]">
 <li><strong><a>der Tweet</a></strong></li>
</ul>

Achtung: wenn du tweets per php lädst, musst du beachten, dass twitter nur 150 Zugriffe auf die API pro Stunde zu lässt von einer IP/Server, das der Traffic dann über deinen Webspace läuft (Bei einer JS Lösung über den User).

Mehr zur API und auch wie man andere Feeds abfragt, nicht nur die eigenen Tweets:

Kategorien:Arbeit, Johannes Ulrich Gehrke, Non-Print, PHP, Programmieren, Schweine, web



Keine Kommentare


kommentieren