Twitter Feed

Twitter bietet die Möglichkeit seinen eigenen Twitter Feed per Javascript auf jeder Seite einzubinden. Ein Problem dabei ist, dass man das Script von der Twitter Webseite aus einbinden muss. Nun ist Twitter ab und an sehr überlastet, so das das Laden dieses Scriptes sehr lange dauern kann. Dies blockiert dann die eigene Seite, die dann einfach nicht aufhören mag zu laden. Ausserdem ist das Aussehen dieses Javascripts nur bedingt anzupassen.

Dies alles veranlasste mich dazu ein eigenes kleines Script zu schreiben. Mit diesem hab ich dann die volle Kontrolle was ich wie anzeigen möchte. Da ich per Ajax den Twitterfeed auslese stört es nicht den Aufbau meiner Seite. An den Twitterfeed kommt man über folgende URL: http://search.twitter.com/search.json?q=from%3AUSERNAME. Dabei mache ich mir zunutze das Twitter eine Search API zur Verfügung stellt. Diese bietet unter anderem die Möglichkeit per JSON die Daten zu liefern. Da es aus Sicherheitsgründen nicht erlaubt ist per Javascript von einer Fremden Domains Daten zu empfangen, habe ich ein kleines PHP Script geschrieben was die Daten des JSON Feeds ausliesst und wieder ausgibt.

Demo

Demoseite des Twitterscripts.

PHP Script zum auslesen und ausgeben des JSON Feeds

1
2
header('Content-Type: application/json'); 
print file_get_contents("http://search.twitter.com/search.json?q=from%3A".$_GET['user']);

Erklärung PHP

In der ersten Zeile wird der JSON Header gesendet. Dann lade ich den Twitter Feed per file_get_contents Befehl und gebe ihn dann direkt wieder aus.

Wie in der Überschrift erwähnt verwende ich das Mootools Framework um einfach den JSON Feed auszulesen und anzuzeigen. Dadurch braucht man sich nur noch um das wesentliche zu kümmern.

Das Javascript

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
var getTwitter = new Class(
{
  initialize: function(url,id)
  {
    this.url = url;
    this.id = id;
    this.getJson();
  },
 
  buildHtml : function(responseObject)
  {    
    var tb = '<ul class="twitterlist">';
    for(var i = 0; i < responseObject['results'].length; i++) {
      tb = tb + '<li style="background-image: url('+responseObject['results'][i].profile_image_url+')" class="twitt"><p>' + responseObject['results'][i].text + '<span class="twitttime">'+this.transformTime(responseObject['results'][i].created_at)+'</span></p></li>';
    }
    tb = tb + '</ul>';        
    return tb;
  },
 
  transformTime : function(mytime)
  {
    var dd = new Date();
    dd.setTime(Date.parse(mytime)).toLocaleString();
 
    var min = ''+dd.getMinutes();
    if ( min.length < 2) min = '0'+min;
 
    var mon = ''+(dd.getMonth()+1);
    if ( mon.length < 2) mon = '0'+mon;      
 
    return dd.getDate()+'.'+mon+'.'+dd.getFullYear()+' '+dd.getHours()+':'+min+' Uhr';
  },
 
  getJson : function()
  {
    var jsonRequest = new Request.JSON({
      url: this.url,
      onSuccess: function(obj,txt)
      {
        $(this.id).innerHTML = this.buildHtml(obj);
      }.bind(this)
    }).get();
  } 
 
});
 
window.addEvent('domready', function(){ 
  var h = new getTwitter('http://www.chaosbox.de/demos/gettwitterjson.php?user=Drathal','twitterdata');
});

Erklärung Javascript

In der initialize Methode werden die auszulesende URL und das TAG angegeben wo die Ausgabe stattfinden soll. Dort wird dann die Methode getJson aufgerufen die unser kleines PHP Script aufruft um die Daten zu empfangen. Sobald der Feed erfolgreich geladen wurde wird onSuccess aufgerufen. Von dort aus bastelt die Methode buildHtml das HTML für die Seite zusammen. Diese durchläuft einfach das Antwort Object und erstellt eine Liste. Um das Datum der Ausgabe noch ein wenig anzupassen wird die Methode transformTime aufgerufen.

Schlusswort

Wie man schnell erkennt ist das ein sehr einfaches Script das noch viel Verbesserungspotential hat. So kann man z.B. eine Ladeanzeige einbauen, eine Nachricht ausgeben wenn Twitter nicht errreichbar ist, oder aber das Design weiter verschönern. Dieses Script dient als Anregung und darf von jedem frei benutzt und verändert werden.

Hat dir der
Artikel gefallen?
Bookmarks: Diese Icons verlinken auf Bookmark Dienste bei denen Nutzer neue Inhalte finden und mit anderen teilen können.
  • Digg
  • del.icio.us
  • MisterWong
  • Y!GG
  • Facebook
  • Google Bookmarks
  • Live-MSN
  • Tausendreporter
  • Technorati

Ähnliche Beiträge:

  1. Twittern mit PHP
  2. Drag & Drop mit Mootools

10 Kommentare

Hallo,

leider bin ich nicht so firm was PHP, RSS angeht. Könntest Du mir vielleicht ein Beispiel posten oder zukommen lassen, wie ich lediglich den letzten aktuellen Tweet auslesen kann. Ich möchte daraus ableiten wie ich generell mit RSS umzugehen habe und vielleicht die Syntax besser verstehen.

@Sven
Das obige Beispiel ist in Javascript. Um dies zu ändern müsstest nur die Schleife zur Ausgabe ändern, So in etwa: for(var i = 0; i < 1; i++) { Das gibt nur den ersten Beitrag aus. Für PHP schau ich mal ob ich in nächster Zeit was Posten kann.

Supder, das wäre nett, ich danke Dir.

Hallo,

bin leider absoluter Java-Neuling.
Was davon muss nachher in die PHP-Seite, wo es angezeigt werden muss und was mache ich mit dem Rest?
Brauche ich noch irgendwelche Dateien zusätzlich auf meinem Server?

Gruß,
Andi

Hallo Andi,
Das Php Script legst du auf dem Server ab und sorgt dafür das du die Daten aus Twitter an das Jaavascript weiterleiten kannst. Das javascript gibt diese Daten dann aus. Also PHP Script kopieren und das JS in deine Seite einbinden. Auf dem Server brauchst nu nur PHP sonst nicht da alles andere Client Seitig getan wird.

Ich hoffe das hilft ein wenig.
Markus

nochwas Andi.
Natürlich musst du auch Mootools zuvor laden, wie oben beschrieben.

super script, werde es gleich mal ausprobieren, tausend dank.

Das ganze umgekehrt findet man unter Twitterfeed com – Ist auch ganz lustig :-)

Die Demo ist irgendwie leer…

fwpnvlwr…

fwpnvlwr…

Kommentar schreiben