Veröffentlicht von & unter Allgemein.

Ich habe meinen GCM Server für Android Push Nachrichten etwas überarbeitet. Leider ging nach dem Upload des Server zur Google App Engine zwar die An- und Abmeldungen der Push Benachrichtigungen aber nicht mehr die Zustellungen der Nachrichten für die Clients.

Folgende Meldungen waren in dem Log der Developer Console zu sehen:
com.google.android.gcm.demo.server.SendMessageServlet sendSingleMessage: Exception posting Message()
com.google.android.gcm.server.InvalidRequestException: HTTP Status Code: 401

Im Dev Guide wird 401 beschrieben mit:
Indicates that the ClientLogin AUTH_TOKEN used to validate the sender is invalid.

Das API Token war aber richtig. Ich habe auch mehrmals neue API Keys in der Developer Console angelegt und dabei verschiedene Key für Browser, Android und Server Anwendungen benutzt. Alles ohne Erfolg.

Nach langen Recherchen habe ich mal in den Datastore mittels dem Datastore Viewer reingeschaut und entdeckte ein Pulldown Menü. Mit dem Pulldown schaltet man die Device und Settings Daten um. Zum erstaunen musste ich feststellen, dass dort der API Key hinterlegt war, und zwar der erste den ich verwendet hatte. Dieser Wert ist wohl persisten, wird also nicht durch ein neues Deployment überschrieben.

Nachdem ich den Eintrag im Datastore gelöscht und den Server neu deployt hatte, wurden auch wieder Nachrichten an die Clients ausgeliefert.

Solltet Ihr den API Key wechseln, denkt daran den Key im Server vor dem Deployment zu löschen!

Bildschirmfoto 2014-02-09 um 19.33.04