web-dev-qa-db-fra.com

Pourquoi ai-je le "MismatchSenderId" du côté du serveur GCM?

J'essaie de créer un service Push pour mon application Android et je suis la documentation et les exemples de Google GCM à cet égard:

Je peux enregistrer/désinscrire mon application Android. Du côté de mon serveur, je peux voir que j'ai un abonnement enregistré, mais lorsque j'essaye d'envoyer un message du serveur à mon application Android, j'obtiens toujours l'erreur suivante:

Erreur lors de l'envoi du message au périphérique n ° 0: MismatchSenderId

Pour mon application Android, j'utilise SENDER_ID = 200000000001.

Et du côté serveur, car Google dit que j'utilise API_KEY = AIzxxxxxxxxxxxxxxxxxxxxxxxxxxxXXXXxxxxx

J'ai suivi ce document: 

http://developer.Android.com/guide/google/gcm/demo.html

J'ai également activé GCM dans mon panneau API Google, mais je vais recevoir ce message d'erreur gênant.

Comment puis-je résoudre ce problème?

69
Vahid hashemi

Votre serveur a-t-il utilisé le nouvel ID d'enregistrement renvoyé par le serveur GCM à votre application? J'ai eu ce problème si j'essayais d'envoyer un message aux identifiants d'enregistrement fournis par l'ancien serveur C2DM.

Et vérifiez également l'ID de l'expéditeur et API_KEY, ils doivent correspondre, sinon vous obtiendrez cette erreur MismatchSenderId. Dans la console Google API, examinez l'URL de votre projet:

https://code.google.com/apis/console/#project:xxxxxxxxxxx

Xxxxxxxxx est l'ID du projet, qui est l'ID de l'expéditeur.

Et assurez-vous que la clé API appartient à «Clé pour les applications serveur (avec verrouillage IP)»

65
azgolfer

La non-concordance se produit lorsque vous n'utilisez pas l'ID numérique. Projet ID IS PAS IDENTIFICATEUR !! Cela m'a pris 9 heures pour comprendre cela. Pour toute la confusion créée par Google, vérifiez le lien suivant pour obtenir l'identifiant numérique. 

https://console.cloud.google.com

au lieu de

https://console.developers.google.com

J'espère que ça aide!!

Mise à jour: -.__ Les choses ont encore changé. Maintenant, l'identifiant de l'expéditeur est avec firebase.

Accédez à https://console.firebase.google.com et sélectionnez votre projet. Sous Paramètres -> Messagerie cloud, vous pouvez trouver l'identifiant de l'expéditeur.

Et il fonctionne!

22
Ajay Singh

Veuillez exécuter le script ci-dessous dans votre terminal

curl -X POST \
-H "Authorization: key=  write here api_key" \
-H "Content-Type: application/json" \
-d '{ 
"registration_ids": [ 
"write here reg_id generated by gcm"
], 
"data": { 
"message": "Manual Push notification from Rajkumar"
},
"priority": "high"
}' \
https://Android.googleapis.com/gcm/send

il donnera le message s'il réussit ou échoue

7
Raj Kumar

J'ai rencontré le même problème récemment et j'ai essayé différentes valeurs pour "gcm_sender_id" en fonction de l'ID de projet. Cependant, la valeur "gcm_sender_id" doit être définie sur le "numéro de projet".

Vous pouvez trouver cette valeur sous: Menu> IAM & Admin> Paramètres.

Voir capture d'écran: Numéro de projet GCM

4
mpavel

Votre application Android doit corriger l'identifiant du numéro à 12 chiffres (également appelé numéro de projet GCM). Si ce numéro à 12 chiffres est incorrect, vous obtiendrez également cette erreur.

Ce numéro à 12 chiffres se trouve dans votre console Google Play sous votre application spécifique, "Service & API" -> "IDENTIFIÉ DE L'ENVOI LIÉ" 

2
Britc
InstanceID.getInstance(getApplicationContext()).getToken(authorizedEntity,scope)

allowedEntity est le numéro de projet du serveur 

2
Ivan Vizuet

Cela se produit lorsque la requête HTTP des paramètres Clé de serveur et Sender ID ne correspond pas. Fondamentalement, l'ID du serveur et la clé du serveur doivent appartenir au même projet Firebase. Veuillez vous référer à l'image ci-dessous. Si vous mélangez ces paramètres de projets Firebase différents, l'erreur MismatchSenderIdenter image description here

0
Chamath Jeevan