web-dev-qa-db-fra.com

Erreur GCM = MissingRegistration envoyant des messages via JSON

Je teste Push GCM via Fiddler

En-têtes:

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? Tous les identifiants sont corrects.

31
takayoshi

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 brut, l'ID d'enregistrement est transmis dans un paramètre appelé registration_id au lieu de registration_ids, ce qui explique votre erreur MissingRegistration.

74
Eran

Pour le nouveau message cloud, lorsque vous souhaitez envoyer un message en aval à partir du 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..."
}
3
Zephyr

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

Vérifiez que la demande contient un jeton d'enregistrement (dans le registration_id dans un message en texte brut, ou dans le champ to ou registration_ids dans JSON).

2
Hamedz

Swift 5

In my case receiver token was missing and after put the fcm receiver token its work fine for me
0
Shakeel Ahmed