Skip to content
alekiy edited this page Jan 30, 2018 · 9 revisions

Bereitstellung von 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/.

Push für Android

Das API-Projekt findet sich unter https://console.developers.google.com/iam-admin/iam?project=api-project-38438927043

Uniqush-Push

Uniqush-Push ist der Server, der für uns registrierte Smartphones und Push-Provider verwaltet. Die Verwaltung erfolgt vollständig über URLs.

Sicheres Beenden

Der Server muss heruntergefahren werden, um alle Daten sicher zu speichern.

Konfiguration der Provider

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

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

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.

APNS-Zertifikate

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-Abonnements

Smartphone-Clients tragen sich über https://api.uni-potsdam.de/endpoints/pushAPI/subscribe?service=reflectup&subscriber=SOME_NAME&pushservicetype=gcm&regid=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.

Push-Nachrichten versenden

Das Versenden erfolgt nach Service. Alle innerhalb eines Services gesammelten Provider werden gleichermaßen angesprochen.