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.
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.
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..."
}
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).