2016-07-22 10 views
1

Gibt es einen Grund, warum der GCM (Google Cloud Messaging) Service von Google plötzlich eine 401 für eine Anfrage zurückgibt, um eine Android-Push-Benachrichtigung zu senden? Der Aufruf sieht wie folgt ausGCM (Google Cloud Messaging) kehrt plötzlich zurück 401

curl --header "Authorization: key=<my_android_key>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"to\":\"/topics/my_topic\", \"data\":{\"category\":\"help\", \"title\":\"Test\", \"text\":\"Test\", \"param\":\"\"}}" 

Das Ergebnis ist

<HTML> 
<HEAD> 
<TITLE>Unauthorized</TITLE> 
</HEAD> 
<BODY BGCOLOR="#FFFFFF" TEXT="#000000"> 
<H1>Unauthorized</H1> 
<H2>Error 401</H2> 
</BODY> 
</HTML> 

UPDATE:

Google nennt vier mögliche causes for this error:

  • Authorization-Header fehlt oder mit ungültiger Syntax in HTTP-Anforderung .
  • Ungültige Projektnummer als Schlüssel gesendet
  • Schlüssel gültig, jedoch mit deaktiviertem GCM-Dienst.
  • Anforderung stammt von einem Server, der nicht in den Serverschlüssel-IPs auf die weiße Liste gesetzt wurde.

Ich überprüft die Gültigkeit des API-Schlüssels in Frage here, und es scheint ungültig zu sein. Die Frage ist warum? Bisher hat es funktioniert. Argh. : -/

+0

API-Schlüssel geändert/gelöscht? Fügen Sie auch einen Code hinzu, der die Anfrage anzeigt. – COBB

+0

Wir haben versehentlich das Konto gelöscht und es etwas später wiederhergestellt. Könnte dies das Token ungültig machen? :-/ Nicht sicher. – 0x4a6f4672

+0

Versuchen Sie möglicherweise, einen neuen Server-API-Schlüssel für das Projekt zu erstellen, für das der GCM-Dienst aktiviert ist. – COBB

Antwort

2

Nicht sicher, warum das Senden von Push-Benachrichtigungen mit dem Android Key nicht mehr funktioniert, da es früher funktioniert hat. Ich schaffte es mithilfe des Server Schlüssel eine Push-Benachrichtigung auf einen Android-App zu senden, anstatt die Android Schlüssel wie folgt aus:

curl --header "Authorization: key=<my_server_key>" --header Content-Type:"application/json" https://android.googleapis.com/gcm/send -d "{\"to\":\"/topics/my_topic\", \"data\":{\"category\":\"help\", \"title\":\"Test\", \"text\":\"Test\", \"param\":\"\"}}" 

Anscheinend die richtige Methode jetzt für Android zu sein scheint: Why Android key (api key) is invalid or that key is deprecated by GCM server?

fand ich eine Website, die sagt, dass „Google eine Änderung vorgenommen, die für GCM/FCM aus Sicherheitsgründen von der Arbeit Android Keys gestoppt“ https://groups.google.com/forum/#!msg/firebase-talk/4lCPr-UIuY0/ShWZk6z2AAAJ

Die Antwort scheint also zu sein, den "Server Key" zu verwenden, um Android GCM-Nachrichten zu senden (nicht den "Android Key").

1

Es scheint, als ob Sie nicht Serverschlüssel von der Entwicklerkonsole für Ihre Anwendung verwenden.

Verwandte Themen