PHP Extension and Application Repository

PEARcing: Nachrichteninfos mit Growl
Kommentare

Growl ist ein populäres Hintergrundprogramm unter Mac OS für die unaufdringliche Signalisierung neuer Informationen. Es setzt auf ein offenes Netzwerkprotokoll und kann damit auch von PHP aus angesprochen werden.

Genau das macht sich das Package Net_Growl zunutze. Eine ganze Reihe populärer Programme verwendet Growl – zum Beispiel der Instant Messenger Adium und der Mail-Client Thunderbird, um über neue Nachrichten zu informieren. Growl ist ein lokaler Serverdienst, der Meldungen empfängt und sie auf den Bildschirm bringt. Wenig bekannt ist, dass er auch per Netzwerk angesprochen werden kann. Deshalb gibt es auch mittlerweile Implementierungen für Windows und selbst mehrere Apps für das iPhone und Windows Phone 7. Growl kann aufgrund seiner Funktionsweise sehr gut für unmittelbare Benachrichtigungen lokal oder von Rechner zu Rechner verwendet werden. Es sollte allerdings nicht für wichtige Nachrichten eingesetzt werden – ein Empfänger wird nur dann erreicht, wenn er auch online ist und sein Growl-Dienst läuft. Eine Instanz zum Zwischenspeichern existiert nicht und der Sender erfährt auch nicht, ob der Empfänger die Nachricht bekommen hat.

Initialisierung

Mit Net_Growl ist das Verschicken von Nachrichten recht einfach. Nach der Installation per pear install Net_Growl benötigen Sie in einem PHP-Skript nur noch wenige Zeilen. Nach der Inkludierung von Net/Growl.php erzeugen Sie ein Growl-Objekt:

psenv::pushli(); eval($_oclass[„growl“]); psenv::popli(); ?>

= Net_Growl::singleton($app, $types, $password, $connect_options); . Mit dem $app-Parameter übergeben Sie den Namen ihrer Anwendung. Sie müssen darauf achten, dass es sich dabei stets um die gleiche Zeichenkette bei allen Aufrufen handelt. Sie können verschiedene Klassen von Meldungen festlegen, zum Beispiel mit verschiedenen Icons. Hier definieren wir nur eine Klasse: $types = array(‚TEST‘ => array(‚display‘ => ‚Test‘)); . Der Wert für den Parameter $password hängt davon ab, ob beim Client auch ein Passwort gesetzt wurde (Kasten: „Growl einrichten“).

Schließlich noch das $connect_options-Array. Hier können Sie eine Reihe von Einstellungen übergeben, mit denen die Verbindung zum Client aufgenommen werden soll. Für den ersten Test reicht die Angabe der IP-Adresse des Empfängers beziehungsweise von ‚localhost‘, um die Nachricht nur lokal zu verschicken: $connect_options = array(‚host‘ => ‚localhost‘); .

Registrierung

Damit ist die Initialisierung beendet. Bevor Sie eine Nachricht schicken können, muss die Anwendung am jeweiligen Client zumindest einmal registriert werden: $growl->register();. Der Growl-Client fragt beim Benutzer an, ob er der Registrierung der Anwendung zustimmt. Das ist ein marginaler Sicherheitsmechanismus. Die Identifizierung einer Anwendung erfolgt allein über ihren Namen. Deshalb müssen Sie auch darauf achten, stets denselben Anwendungsnamen während der Initialisierung anzugeben.

Senden

Die eigentliche Nachricht senden Sie mit folgenden Angaben:

$name = 'Test';
$title = 'Überschrift';
$description = 'Ich bin der Text!';
$options = array();
$growl->notify($name, $title, $description, $options);

Der Parameter für $name entspricht dem Schlüssel einer Meldungsklasse des $types-Arrays von oben. Die Werte für $title und $description machen den eigentlichen Text der Nachricht aus. In $options können Sie weitere Eigenschaften einer Nachricht definieren, analog zu den Eigenschaften für eine Meldungsklasse. Mit den Zeilen können Sie bereits Nachrichten an einen Growl-Dienst schicken. Aufwändiger wird es, wenn Sie Nachrichten stärker anpassen wollen, zum Beispiel ein eigenes Icon verwenden möchten – beachten Sie dazu aber auch den Kasten „UDP vs. GNTP“.

Growl einrichten

Standardmäßig nimmt Growl nur Anwendungsregistrierungen und Nachrichten von lokalen Anwendungen entgegen. Die Netzwerkfähigkeit muss explizit aktiviert werden. Unter Mac OS gehen sie in die Systemeinstellungen und wählen GROWL. Im Netzwerkreiter aktivieren Sie Eingehende Benachrichtigungen akzeptieren und Registrierungen von Anwendungen erlauben. Optional können Sie auch noch ein Passwort angeben.

UDP vs. GNTP

Ursprünglich nutzte Growl für die Übertragung von Nachrichten über das Netzwerk das User Datagram Protocol (UDP), ein sehr rudimentäres Protokoll, das aber deshalb einfach und schnell benutzt werden kann. Mittlerweile ist aber auch das Growl Notification Transport Protocol (GNTP) hinzugekommen. Es fügt eine ganze Reihe von Fähigkeiten hinzu, die vorher nur bei rein lokalen Nachrichten verfügbar waren. Leider unterstützen noch nicht alle Growl-Clients GNTP.

Seit mehr als drei Jahren implementiert Alexander Merz im Redaktionssystem von Golem.de selbst die kuriosesten Wünsche der Redakteure und baut an der Golem.de-Webseite zur steten Unterhaltung der Leser. Sie erreichen ihn unter alexander.merz[at]gmail.com.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -