-
Notifications
You must be signed in to change notification settings - Fork 1
Push Nachrichten
- https://github.com/uniqush/uniqush-push
- https://github.com/beevelop/docker-uniqush
Für die Zustellung von Push-Nachrichten sind drei Parteien notwendig: Ein Server (uniqush-push in unserem Fall), ein Netzwerk (bei Android zum Beispiel das GCM) und ein empfangendes Smartphone. Eine Einführung gibt es unter http://www.androidhive.info/2012/10/android-push-notifications-using-google-cloud-messaging-gcm-php-and-mysql/.
Das API-Projekt findet sich unter https://console.developers.google.com/iam-admin/iam?project=api-project-38438927043
Uniqush-Push ist der Server, der für uns registrierte Smartphones und Push-Provider verwaltet. Die Verwaltung erfolgt vollständig über URLs.
Der Server muss heruntergefahren werden, um alle Daten sicher zu speichern.
- Herunterfahren über http://musang.soft.cs.uni-potsdam.de:9898/stop
Die Push-Provider (GCM für Android, APNS für iOS) müssen einmal pro Service hinzugefügt werden. Danach laufen sie ewig, es sei denn der Server geht irgendwann kaputt. Im Service werden alle angemeldet Geräte gespeichert und verwaltet.
GCM-Provider
- Hinzufügen über http://musang.soft.cs.uni-potsdam.de:9898/addpsp?service=SERVICENAME&pushservicetype=gcm&projectid=38438927043&apikey=APIKEY
- SERVICENAME für Reflect.UP lautet reflectup
- APIKEY gibt es unter https://console.developers.google.com/apis/credentials?project=api-project-38438927043 (Server key, der neuere). Zugriff haben Alex (gmail), Hendrik (uni-potsdam) und die CIO (uni-potsdam).
Der Provider lässt sich über http://musang.soft.cs.uni-potsdam.de:9898/rmpsp?service=SERVICENAME&pushservicetype=gcm&projectid=38438927043&apikey=APIKEY wieder entfernen.
APNS
- Hinzufügen über http://musang.soft.cs.uni-potsdam.de:9898/addpsp?service=SERVICENAME&pushservicetype=apns&cert=CERT_PATH&key=KEY_PATH&sandbox=false
- CERT_PATH für Reflect.UP lautet /etc/ssl/certs/uniqush_apns_prod_cert.pem
- KEY_PATH für Reflect.UP lautet /etc/ssl/certs/uniqush_apns_prod_key.pem
APNS unterscheidet zwischen Entwicklungs- und Produktivumgebung. Für beide Umgebungen gibt es separate Zertifikate. Bisher habe ich nur die Produktivumgebung erfolgreich einrichten und ansprechen können. Die Einrichtung der Zertifikate ist weiter unten erklärt. Der Provider lässt sich über http://musang.soft.cs.uni-potsdam.de:9898/rmpsp?service=SERVICENAME&pushservicetype=apns&cert=CERT_PATH&key=KEY_PATH&sandbox=false wieder entfernen.
Zertifikate müssen im Member Center erstellt oder heruntergeladen werden. de.unipotsdam.reflectup auswählen, auf Edit klicken, unter Push Notifications das Production SSL Certificate herunterladen. Zertifikat per Doppelklick in die Keychain importieren. Zertifikat und zugehörigen privaten Schlüssel jeweils per Rechtsklick exportieren.
Diese folgenden Befehle basieren auf http://blog.boxedice.com/2010/06/05/how-to-renew-your-apple-push-notification-push-ssl-certificate/, überspringen aber den letzen Schritt, das Mergen der Schlüssel.
# Zertifikatformate umwandeln
openssl pkcs12 -clcerts -nokeys -out uniqush_apns_prod_cert.pem -in uniqush_apns_prod_cert.p12
openssl pkcs12 -nocerts -out uniqush_apns_prod_key_enc.pem -in uniqush_apns_prod_key.p12
# Passphrase entfernen
openssl rsa -in uniqush_apns_prod_key_enc.pem -out uniqush_apns_prod_key.pem
uniqush_apns_prod_key.pem und uniqush_apns_prod_cert.pem auf musang.soft.cs.uni-potsdam.de in den Ordner /etc/ssl/certs/ hochladen und root:root als Benutzer eintragen. Ab jetzt können Zertifikat und privater Schlüssel von uniqush-push zur Einrichtung des APNS-Providers verwendet werden.
Smartphone-Clients tragen sich über https://api.uni-potsdam.de/endpoints/pushAPI/subscribe?service=reflectup&subscriber=SOME_NAME&pushservicetype=gcm®id=GIVEN_REG_ID ein. Doppelte Abonnements sollten dabei von Uniqush-Push herausgefiltert werden.
Eigentlich muss im pushservicetype noch nach Provider unterschieden werden. Das kommt, sobald wir mehr als einen Provider verwenden.
Das Versenden erfolgt nach Service. Alle innerhalb eines Services gesammelten Provider werden gleichermaßen angesprochen.
- Versand über http://musang.soft.cs.uni-potsdam.de:9898/push?service=SERVICENAME&message=Test-Push-Nachricht&msg=Test-Push-Nachricht&title=Push-Titel&subscriber=*
- SERVICENAME für Reflect.UP lautet reflectup