Zahlreiche Apps informieren Sie per Push-Nachricht über aktuelle Events. Mit Pushover können Sie solche Meldungen recht einfach selber generieren. Wir unterstützen Sie bei Ihren ersten Schritten mit dem praktischen Dienst.
Mit dem Google-Cloud-Messaging-Dienst [1] stellt Google allen Android-Entwicklern eine sehr umfangreiche Möglichkeit bereit, über Push-Benachrichtigungen mit Client-Geräten zu kommunizieren. Oft ist hierbei aber der Aufwand bei der Implementierung und Programmierung für den privaten Gebrauch zu hoch. Dies liegt unter anderem daran, dass extra eine eigene Android-App zur Verwendung des Dienstes geschrieben werden müsste.
Die Macher von Pushover [2] haben diesen Missstand erkannt und bieten mit ihrer Android-App in Kombination mit einer Web-App und einer API [3] eine vergleichbare Lösung an, welche aber deutlich einfacher zu benutzen ist. Im folgenden Artikel beschäftigen wir uns mit den Möglichkeiten des Pushover-Dienstes und gehen näher auf die umfangreiche API ein.
Pushover-Benachrichtigungen
Um den Pushover-Dienst zu nutzen, legen Sie direkt beim ersten Start der knapp 4 Euro teuren Android-App einen Account an. Mit diesem melden Sie sich dann im Web-Frontend des Dienstes unter https://pushover.net an. Den Großteil der Pushover-Funktionen und -Features finden Sie in diesem Webinterface vor.
Im Haupt-Dashboard bekommen Sie einen Überblick über Ihre Geräte, die bereits mit Ihrem Benutzerkonto verbunden sind. Ganz simpel versenden Sie hier Push-Notifications: einfach einen Titel vergeben, den Text eintippen, auf Send Notification klicken – fertig. Schon sollte Ihr Handy klingeln und den Eingang der Nachricht signalisieren.
Rechts neben dem Kasten zum manuellen Senden von Benachrichtigungen steht Ihr „User Key“. Sie brauchen ihn, um Apps und Webanwendungen zu erlauben, Ihnen Benachrichtigungen zu senden. Unter dem Menüpunkt Apps & Plugins sind alle offiziell zur Verfügung stehenden Anwendungen aufgelistet. Darunter sind zahlreiche bekannte Dienste wie etwa If This Then That – IFTTT, GitHub oder Botize.
Auch für CMS-Systeme wie Wordpress, Drupal oder Moodle stehen Plugins zur Verfügung. Diese ermöglichen es Ihren Webseiten, Sie über Events per Push-Nachricht zu informieren. Es besteht auch die Möglichkeit, ganz einfach via Mail eine Nachricht zu senden. Dazu schicken Sie eine E-Mail an die unter dem User-Key stehende Adresse. Der Betreff der Mail ist auch der Betreff der Benachrichtigung.
Pushover-API für eigene Apps
In der Einleitung dieses Beitrags sind wir bereits kurz auf die von Pushover angebotene API eingegangen. Mit ihr kann man über selbst programmierte Skripte Benachrichtigungen an Ihre Geräte senden. Direkt auf der Startseite seiner Homepage zeigt Pushover Beispiele, wie sich die API mit Curl, Perl, Ruby oder PHP ansprechen lässt. Um mit der Pushover-API zu arbeiten, müssen Sie nun Ihre Anwendung in einem ersten Schritt bei Pushover anmelden.
Dazu gehen Sie auf der Pushover-Webseite auf den Link Apps & Plugins und erzeugen über Create New Application Ihre App. Nachdem Sie das erledigt haben, bekommen Sie einen „API Token/Key“ angezeigt, der als Authentifizierung der Anwendung bei der Benutzung der API dient. Beim Versand einer Benachrichtigung über die API wird, wie bei REST-APIs üblich, eine Anfrage an den Server mit den entsprechenden Argumenten gesendet. Im Falle der Pushover-API handelt es sich um eine POST-Anfrage an die URL https://api.pushover.net/1/messages.json.
Damit Ihre Anfrage nicht zurückgewiesen wird, müssen die Argumente, die Sie in das Array zum Übermitteln geben, den Anforderungen der API-Dokumentation [4] entsprechen. Zunächst einmal müssen bei jeder Anfrage an den Server der API- und der User-Key übermittelt werden. Um den Inhalt der Benachrichtigung zu definieren, fügen Sie in das zu übermittelnde Array noch Werte zu title
und message
ein. Somit hätten wir auch schon das Nötigste für eine Benachrichtigung zusammen. Das Beispiel-Array sieht bisher so aus:
PushoverArray[token] = "0vY5HtXAIaab7cBBjVxYZfLgX4C2ce" // API-Key PushoverArray[user] = "aZybUvVuW9pzl8B9bpTo5ZcHZVAsgB" // User-Key PushoverArray[title] = "Beispielüberschrift" // Titel PushoverArray[message] = "Beispieltext" // Inhalt
Optional zu diesen Angaben können Sie viele weitere Werte übermitteln und die bei dem Nutzer ankommende Nachricht weiter an Ihre Bedürfnisse anpassen. Falls mit dem Userkonto mehrere Geräte verknüpft sind, erhalten alle die Benachrichtigung. Dieses Verhalten ist manchmal nicht optimal. Mit der Übergabe des Gerätenamens als Wert zu device
können Sie genau spezifizieren, welches Gerät die Benachrichtigung erhalten soll.
Des Öfteren kommt es vor, dass Push-Benachrichtigungen auf eine URL verlinken. Sei es auf ein Bild, auf eine Webseite oder eine Bestätigungsseite. Diese URL können Sie selbstverständlich in die Nachricht integrieren, doch dann verhält sich die URL auf dem Empfänger-Smartphone nicht wie ein Link, er ist zum Beispiel nicht anklickbar.
Bei Bedarf lässt sich dies durch eine separate Übertragung verhindern. Der URL wird url
zugewiesen, zusätzlich besteht die Möglichkeit, einen Namen zu vergeben, der url_title
zugewiesen wird. Damit erreichen Sie, dass der Link gut erkennbar und gesondert am Ende des Benachrichtigungstextes aufrufbar ist.
Benachrichtigungen priorisieren
Durch die Angabe einer Priorität bestimmen Sie, wie mit der eingehenden Benachrichtigung auf dem Gerät verfahren werden soll. Die Priorität wird priority
zugewiesen und kann aus den Werten -1
, 0
, 1
und 2
bestehen. Hierbei steht -1
für eine unwichtige Meldung, die keinen Ton und keine Vibration auslöst. Der Standardwert 0
führt zu einer normalen Behandlung, das heißt, es wird entsprechend der in den App-Einstellungen definierten Zeiten ein Ton oder eine Vibration ausgegeben.

Eine hohe Priorität wird durch 1
gekennzeichnet, hierbei werden die eben angesprochenen Zeiten ignoriert und die eingehende Benachrichtigung durch einen Ton signalisiert. Zudem werden mit einer Priorität von 1 versehene Nachrichten in der App farblich rot hervorgehoben. Die höchste Prioritätsstufe (2
), auch „Emergency Priority“ genannt, kommt mit der Besonderheit daher, dass die App eine Nachricht immer und immer wieder sendet, um die Aufmerksamkeit des Users zu bekommen. In Fällen, wo dieser zum Beispiel schläft, aber unbedingt die Benachrichtigung lesen soll, ist dieser Modus eine gute Option.
Emergency Priority für den Notfall
Um eine Benachrichtigung mit Emergency-Priorität zu versenden, müssen Sie zusätzlich zu der Zuweisung „PushoverArray[priority] = 2“ noch Werte für retry
und expire
angeben. Diese Werte sind nicht optional und definieren, in welchen Abständen und wie oft die Benachrichtigung versandt wird. Der Abstand zwischen zwei Benachrichtigungen muss mindestens 30 Sekunden betragen. Zum Beispiel geben Sie retry
den Wert 300 und expire
7200. Dies führt dazu, dass Pushover alle 5 Minuten (300 Sekunden) eine Benachrichtigung sendet, und das über 2 Stunden (7200 Sekunden).

Der Maximalwert für expire
beträgt 86.400, also 24 Stunden. Um zu überprüfen, ob der User die Benachrichtigung gelesen bzw. geöffnet hat, und diesen Status in Ihre Anwendung zu integrieren, bietet Pushover an, zusätzlich dem callback
-Parameter eine URL zu übergeben. An diese URL senden die API-Server nach dem Öffnen der Benachrichtigung durch den User eine POST-Anfrage mit drei Parametern: receipt
, acknowledged
und acknowledged_at
. Mit diesen Werten können Sie anschließend in Ihrem System weiterarbeiten.
Weiterführend besteht die Möglichkeit, den Status der Emergency-Benachrichtigung abzufragen. Diesen Prozess genauer zu besprechen, würden den Rahmen dieses Artikels sprengen. Kurz zusammengefasst, erhalten Sie durch eine GET-Abfrage an eine individuelle URL ein Array mit verschiedenen Werten, mit denen Sie dann weiter arbeiten können. Genaueres hierzu lesen Sie unter https://pushover.net/api#receipt.
Praktisches Beispiel
Im Abschluss möchten wir Ihnen in einem kleinen PHP-Skript die Verwendung und Implementierung des Pushover-Dienstes demonstrieren. Das recht einfache Skript versendet bei Aufruf im Browser eine Pushover-Benachrichtigung mit der Kurzbeschreibung zum letzten Beitrag auf unserer Webseite. Das Beispiel könnten Sie zu einem Benachrichtigungssystem weiterentwickeln, das Sie immer über neue Beiträge auf Android User informiert.

<?php // Folgender Teil dient der Beschaffung des Android-User-RSS-Feeds und des Parsens vom XML-Code zu einem PHP-Array. $content = file_get_contents("https://www.android-user.de/rss/feed/news"); // Speichern des RSS-Feeds in einem String $parser = xml_parser_create(); // Initiierung einer Instanz des xml_parser-Objektes xml_parse_into_struct($parser, $content, $result); // Parsen des XML-Codes zu einem PHP-Array "$result" $title = $result[23][value]; // Definition der Titelvariable $description = $result[27][value]; // Definition der Beschreibungsvariable $url = $result[25][value]; // Definition der URL-Variable $description = str_replace("<p>", "", $description); // Entfernen des <p> am Anfang der Beschreibung $description = str_replace("</p>", "", $description); // Entfernen des </p> am Ende der Beschreibung // Der RSS Feed ist nun ausgewertet, und die entsprechenden Teile wurden den passenden // Variablen zugewiesen. Nun geht es an das Absenden der Benachrichtigung. Hierfür ist // eine einfache POST-Anfrage via curl ausreichend. Der Inhalt wird über ein Array an // die API übertragen. curl_setopt_array($ch = curl_init(), array( CURLOPT_URL => "https://api.pushover.net/1/messages.json", // Ziel wird festgelegt CURLOPT_POSTFIELDS => array( "token" => "0vY5HtXAIaab7cBBjVxYZfLgX4C2ce", // Übermittlung des API-Tokens "user" => "aZybUvVuW9pzl8B9bpTo5ZcHZVAsgB", // Angabe des User-Keys "title" => $title, // Titel der Benachrichtigung "message" => $description, // Inhalt der Benachrichtigung "url" => $url, // Angabe des Links zum ganzen Artikel "url_title" => "Artikel öffnen", "priority" => "1", ))); curl_exec($ch); curl_close($ch); ?>
Fazit
Die Macher von Pushover haben mit ihrem Dienst ein einfach zu benutzendes und dennoch sehr flexibles Benachrichtigungssystem erschaffen. Es ist dank der einfachen Bedienung genau richtig, um eigene Skripte und Applikationen mit seinem persönlichen Smartphone zu koppeln und sich so zu informieren. Die sehr umfangreiche und noch dazu gut dokumentierte API rundet das Gesamtpaket ab.
Wer selber nicht über das Know-how verfügt, Pushover-Skripte zu bauen oder den Dienst in eigene Projekte zu integrieren, wird vielleicht bei If This Then That – IFTTT [5] fündig. Dort tummeln sich inzwischen über 1.600 fertige „Rezepte“ in der Datenbank, die auf Pushover zurückgreifen. In diese müssen Sie lediglich ein paar Daten eintragen und sie abschließend per Mausklick aktivieren.
Infos
- Google Cloud Messaging for Android: https://developer.android.com/google/gcm/index.html
- Pushover-App: https://play.google.com/store/apps/details?id=net.superblock.pushover
- Pushover: https://pushover.net
- Dokumentation der Pushover-API: https://pushover.net/api
- Pushover-Rezepte bei IFTTT: https://ifttt.com/recipes/search?q=Pushover