Wenn man von seiner Webseite eine Push-Nachricht über Aerogear senden möchte und PHP verwendet, muss man einen kleinen Umweg gehen. Es gibt verschiedene Möglichkeiten, das zu erreichen. Die folgende Vorgehensweise ist eine davon.

Andere Blogs zum Thema Aerogear:

curl

Wir verwenden curl, um eine Anfrage an den Aerogear-Server zu senden.

Dieser Befehl in der Kommandozeile veranlasst Aerogear eine Push Nachricht zu senden:

curl -u "APPLICATION ID" -v -k -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"message": {"alert": "Hello from the curl HTTP Sender!","sound": "default"}}' SERVER_URL/rest/sender

APPLICATION ID und SERVER_URL muss durch die Daten, die Aerogear unter „Sender API“ zur Verfügung stellt ersetzt werden.

Welche Einstellungen hier besonders bei den Daten (message) gemacht werden können, kann in der Aerogear Dokumentation nachgelesen werden.

Aerogear erlaubt nur sichere SSL Verbindungen. Wenn man kein bestätigtes Zertifikat gekauft hat, muss die Verbindung so konfiguriert werden, dass es erlaubt ist, selbst signierte Zertifikate zu verwenden.

Wichtig ist hier der Parameter –k. Dieser wird benötigt, um selbst signierte SLL Zertifikate zu erlauben. Es ist natürlich immer besser ein Zertifikat zu kaufen. Ist ein Zertifikat vorhanden, kann man diesen Parameter einfach weglassen.

Wenn man in der Kommandozeile obigen Befehl ausführt und bei Aerogear bereits ein Gerät registriert ist, wird nun schon eine Push-Nachricht beim Gerät ankommen.

Bash-Skript

Um später über PHP Push-Nachrichten absetzen zu können, kann ein Bash-Skript geschrieben werden, das dann den curl Befehl ausführt. Dem Skript sollen natürlich Variablen übergeben werden. Im einfachsten Fall nur die Nachricht, die im curl Befehl alert heißt.

Das Skript wird in das Verzeichnis im Webspace gelegt, in dem später auch das PHP Skript liegt. Natürlich kann es auch in einem anderen Verzeichnis liegen, dann muss der Pfad angepasst werden. Außerdem muss das Skript ausführbar sein.

Der Inhalt des Skripts sieht wie folgt aus (sendPush):

#!/bin/bash

curl -u "APPLICATION ID" -v -k -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"message": {"alert": "'"$1"'","sound": "default"}}' SERVER_URL/rest/sender

Hier müssen wieder APPLICATION ID und SERVER_URL ersetzt werden. Außerdem ist nun der Wert für alert durch eine Variable ersetzt, die wir dem Skript übergeben.

Dem Skript muss noch die Berechtigungen 775 gegeben werden:

chmod 755 /pfad/zum/skript/sendPush

Wenn das Skript angelegt ist, kann es ausgeführt werden und es sollte eine Push-Nachricht ankommen:

/pfad/zum/skript/sendPush

Aufruf über PHP

Jetzt kann das Skript von PHP aus aufgerufen werden. Falls das Skript im selben Ordner liegt wie das PHP Skript, sieht das PHP Skript so aus:

<?php
function sendPush($message){
    shell_exec('./pushSend "'.$message.'"');
}
sendPush("TEST");

Der Funktion sendPush wird ein Parameter message übergeben. Über shell_exec wird dann unser shell Skript ausgeführt und message übergeben. Zum Testen wird hier im PHP-Skript direkt die sendPush aufgerufen. Das wird natürlich später auskommentiert.

Wenn wir das PHP Skript nun über einen Webbrowser aufrufen, sollte kurze Zeit später eine Nachricht „TEST“ am Gerät ankommen.

Weitere

Virtueller Museums-Rundgang

Für den Zweckverband Landeswasserversorgung Baden-Württemberg ...

12 regionale Digital Hubs in BW – und wir sind dabei!

Wirtschaftsministerium wählt zwölf regionale Digital ...