Twitter mit PHP in eigener Website nutzen
geschrieben von Pawel
Twitter ist ein großartiger Webdienst. Man könnte ihn als Mischung aus Miniblog und Sammel-SMS bezeichnen. Kurz gesagt, kann ich andere daran teilhaben lassen, was ich gerade so tue oder denke. Wir sind davon bei Pixelfans so begeistert, dass wir jeweils immer den aktuellsten Beitrag von Carsten oder mir auf dieser Website einbinden.
Twitter hat natürlich eine API, die auch gut dokumentiert ist. In der Dokumentation findet der begeisterte Neutwitterianer unter dem Punkt The Easiest Way to Play around with the Twitter API folgendes:
get the public timeline in RSS format, unauthenticated: curl "http://twitter.com/statuses/public_timeline.rss"
Sieht simpel aus und es funktioniert auch in der Konsole, wenn man auf seinem Betriebsystem CURL installiert hat.
Um es auf einer Website zu nutzen, muss es aber mit PHP zusammen spielen.
CURL ist in den meisten PHP-Installationen enthalten. Das o.g. Beispiel würde in PHP wie folgt aussehen:
<?php
function twitter($url) {
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($curl_handle);
curl_close($curl_handle);
return $response;
}
$url="http://twitter.com/statuses/public_timeline.xml";
$xml = twitter($url);
echo "<pre>";
echo htmlentities($xml);
echo "</pre>";
}
?>
Nicht wirklich schwer, aber doch etwas umfangreicher als in der offiziellen Dokumentation.Das Tolle ist, das man keinen API-Schlüssel oder ähnliches braucht, in der o.g. Form benötigt man noch nicht einmal einen Twitter-Account. Nun möchte nicht jeder jede öffentliche Twitternachricht einbinden. Praktischer ist es nur seine eigenen Nachrichten bzw. die seiner Freunde einzubinden. Dazu muss das Beispiel nur leicht abgeändert werden.
Zunächst sollte Sie sich aber den Output ansehen.
<?xml version="1.0" encoding="UTF-8"?>
<statuses type="array">
<status>
<created_at>Mon Mar 16 12:51:46 +0000 2009</created_at>
<id>1336057454</id>
<text>Gehe Mittagessen kaufen…</text>
<source><a href="http://www.twhirl.org/">twhirl</a></source>
<truncated>false</truncated>
<in_reply_to_status_id></in_reply_to_status_id>
<in_reply_to_user_id></in_reply_to_user_id>
<favorited>false</favorited>
<in_reply_to_screen_name></in_reply_to_screen_name>
<user>
<id>...</id>
<name>...</name>
<screen_name>...l</screen_name>
<location>Halle, Germany</location>
<description>...</description>
<profile_image_url>...</profile_image_url>
<url>http://www.pixelfans.de</url>
<protected>false</protected>
<followers_count>2</followers_count>
</user>
</status>
...
Soweit die Struktur des Dokuments. Die Twitter-API kann aber die meisten geüwnschten Formate zurückliefern. Soll die Antwort mit Javascript weiter verwendet werden, bietet sich JSON an.
<?php
function twitter($url) {
$curl_handle = curl_init();
curl_setopt($curl_handle, CURLOPT_URL, $url);
Freunde müssen natürlich einen bestimmten Nutzer zugeordnet werden. Deshalb ist die Angabe von Nutzernamen und Passwort, die durch ":" getrennt werden erforderlich.
curl_setopt($curl_handle, CURLOPT_USERPWD, "Twitter_screen_Name:Passwort");
curl_setopt($curl_handle, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($curl_handle);
curl_close($curl_handle);
return $response;
}
$url="http://twitter.com/statuses/friends_timeline.xml";
Wir nutzen jetzt SimpleXML für die Verabeitung der XML-Rückgabe. Dieses ist ab PHP 5 verfügbar.
$xml = simplexml_load_string(twitter($url));
foreach($xml->status as $status) {
echo "<strong>";
echo $status->user->name;
echo ":</strong> ";
echo $status->text;
echo "<hr />";
}
?>
Wozu sollten Sie sich den HTML-OUtput des ersten Beispiels ansehen? Richtig, um die Struktur des Dokumentenbaums zu verstehen und um damit Zugriff auf jedes Kindelement zu erlangen.
Wer Twitter umfangreicher nutzen möchte, dem sei nätürlich die Klasse twitter.lib.php empfohlen. Diese kann auch mit PHP4 genutzt werden, dazu ist es aber nötig, die private-Deklarationen zu löschen.
Für viele CMS sind natürlich Plugins u.ä. bereits fix und fertig nutzbar. Exemplarisch sei hier auf das Plugin für Expression Engine und die library für CodeIgniter verwiesen.
.psd Vorschau im Windows Explorer
geschrieben von carsten
Um unter Windows im Explorer auch Vorschaubilder für psd-Dateien, also die Photoshop-eigenen Grafikdateien, ansehen zu können kann man sich eines kleinen Tricks bedienen. Er stammt noch aus der Zeit als Photoshop 7.0 aktuell war, ist aber in seiner Funktionsweise keineswegs in die Jahre gekommen.

Es gilt eine Datei im System zu ergänzen und einige Zeilen in die Regsitry einzufügen.
Die Datei, ist die psicon.dll, welche in das Verzeichnis C:/Programme/Gemeinsame Dateien/Adobe/Shell/ eingesetzt werden muss. Sollte sie schon vorhanden sein, kann man Sie meiner Erfahrung nach bedenkenlos ersetzen. Ich habe das schon mit unterschiedlichen Versionen von Photoshop erfolgreich probiert.
Anschließend müssen nur noch diese Zeilen in der Registry ergänzt werden und fertig. .psd-Dateien werden nun mit einer Vorschau im Windows Dateisystem dargestellt.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDLLs]
"C:\\Programme\\Gemeinsame Dateien\\Adobe\\Shell\\psicon.dll"=dword:00000001
[HKEY_CLASSES_ROOT\.psd\ShellEx]
[HKEY_CLASSES_ROOT\.psd\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{0B6DC6EE-C4FD-11d1-819A-00C04FB69B4D}"
[HKEY_CLASSES_ROOT\CLSID\{0B6DC6EE-C4FD-11d1-819A-00C04FB69B4D}]
@="Photoshop Icon Handler"
[HKEY_CLASSES_ROOT\CLSID\{0B6DC6EE-C4FD-11d1-819A-00C04FB69B4D}\InProcServer32]
@="C:\\Programme\\Gemeinsame Dateien\\Adobe\\Shell\\psicon.dll"
"ThreadingModel"="Apartment"
Gegebenenfalls muss die Datei an eine andere Stelle kopiert werden, abhängig davon wo sich die gemeinsam genutzten Photoshopdaten nun befinden. Dieser veränderte Pfad gehört dann auch in die dritte sowie vorletzte Zeile dieser Regsitryergänzung.
Auf eine Diskussion über das Für und Wieder solch proprietärer Software möchte ich mich an dieser Stelle lieber nicht einlassen. Manchmal fehlt einem mir einfach noch der Mut zu Ubuntu, Gimp & Co zu wechseln. Aber irgendwann, irgenwann werde ich den Absprung schaffen.
Update
Per Email kam die Frage nach einer konkreten Problemlösung für pures "Nicht-funktionieren" der Vorschaufunktion. Da sind mir aber leider die analytischen Hände gebunden, weil es an Infos mangelt.
Um Fehler beim Bearbeiten der Registry zu vermeiden, habe ich kurzerhand die paar Zeilen Code in eine leere Textdatei kopiert um sie anschließend als
psd-vorschau.reg (622 Byte, RAR-Archiv)
zu speichern und hier zur Verfügung zu stellen.
Diese kann man jetzt einfach ausführen und alle Änderungen werden automatisch in die Registry übernommen.
Online-Journalismus auf Level 1
geschrieben von carsten
Ein guter Beitrag sollte meines Erachtens nach immer gut recherchiert sein, ein Thema von mehreren Seiten beleuchten und vor seiner Veröffentlichung ein paar Tage geruht haben, um sicher zu stellen, dass das Geschriebene auch wirklich passt. Also ungefähr so aussehen, wie es Pawel hier schon des Öfteren gut vorgemacht hat. Danke an dieser Stelle, dass Du die Fahne hoch hältst!
Da ich im Moment leider keine dieser persönlichen Erwartungen in irgendeiner Weise erfüllen kann, weil ich mitten in der Vorbereitung auf meine Abschlussprüfung stecke und auch sonst kaum online aktiv bin, gibt’s jetzt hier mal ab von der Regel einfach eine Sammlung lesenswerter Texte bzw. sehenswerter Medienergüsse anderer Blogger. Kurz, nicht großartig reflektiert, aber eben empfehlenswert.
- Ein äußerst lehrreichen Text über Zeichenkodierung, die mir doch regelmäßig zu Schaffen macht, gibt’s bei toscho.de. Der Autor ist Webentwickler, Texter und Katzenliebhaber aus Halle.
- Wie man in Photoshop Filtereffekte veränderbar und nicht destruktiv anlegt zeigt Michel Mayerle auf blogs.ulrich-media.ch.
- Auf einen sehr coolen Film über die Entstehung eines Logos bzw. eines kompletten Corporate Designs wies mich letztens ein Tweet des webstandards-Magazin hin.
- Die Frage nach der Sinnhaftigkeit von elastischen Layouts, bei der Vielzahl von Browsern mit Zoomfunktionen, habe ich mir auch schon oft gestellt. Das Webstandard-Blog stellt sie öffentlich und die Kommentare sind nicht weniger kontrovers als spannend.
- Zur Frage was die kreativen Wilden und die strukturierten Methodiker voneinander lernen können, hat das Projektmanagementblog eine wirklich sehenswerte Slideshare-Präsentation gefunden.
Genug jetzt der Linkschleuderei, aber die Webkrauts haben einfach Recht, wenn sie sagen:
Konzentriere dich aufs Lernen.