GCM Error=MissingRegistration envoyer des messages via JSON

je teste push GCM via Fiddler

Headers:

User-Agent: Fiddler
Authorization: key=AIzaSyAkXfcuLLCZ-5n18wwO6XeJ13g-z9ja
Host: android.googleapis.com
Content-Length: 286

Corps:

{"registration_ids":["APA91bHyn8YHcH_vSuOo7_A0PMgF5SU1K0FebOFGKXYTqpN5x4eD0tVBvzQLn749TVcczN5gSjB1wqf5AzYfxFI_qskA1Nzipf-9MfdEom1PI1vkFqKIg9B8vZvPLOLozE7jaRzELuyDzpFRbO3Xh5lT-KDA"],"collapse_key":"8b990f5a-78fc-4bad-b242-ffc740a750fb","data":{"message":"message to device"}}

j'ai une erreur

Error=MissingRegistration

Où est mon problème? Toutes les identités sont correctes.

26
demandé sur Eran 2014-03-18 21:04:28

3 réponses

vous avez probablement oublié de spécifier le type de contenu dans l'en-tête pour être JSON.

Content-Type: application/json

si Content-Type est omis, le format est supposé être du texte brut.

et pour le texte en clair L'ID d'enregistrement est passé dans un paramètre appelé registration_id au lieu de registration_ids, ce qui explique votre MissingRegistration erreur.

57
répondu Eran 2014-03-18 17:13:41

pour le nouveau message cloud, lorsque vous souhaitez envoyer un message dwonstream depuis le serveur, vous devez utiliser "to" pour décliner l'id d'enregistrement cible.

comme ci-dessous :

https://gcm-http.googleapis.com/gcm/send
Content-Type:application/json
Authorization:key=AIzaSyZ-1u...0GBYzPu7Udno5aA

{ "data": {
    "score": "5x1",
    "time": "15:10"
  },
  "to" : "APA91bHun4MxP5egoKMwt2KZFBaFUH-1RYqx..."
}
2
répondu Zephyr 2015-10-16 14:18:45

Pour Firebase, Vous pouvez obtenir des informations à partir de https://firebase.google.com/docs/cloud-messaging/http-server-ref#error-codes

vérifier que la requête contient un jeton d'enregistrement (dans le registration_id dans un message texte, ou dans le to ou champ registration_ids dans JSON).

1
répondu Hamedz 2016-06-18 21:40:03