J'ai une application qui utilise Google FCM pour envoyer des notifications push.
Lorsque j'envoie une notification push à un groupe d'utilisateurs, je reçois la réponse suivante MismatchSenderId
pour certains d'entre eux. Pourtant, tous les utilisateurs ont exactement la même application. Comment se fait-il que certains utilisateurs obtiennent une réponse positive et que d'autres obtiennent un MismatchSenderId ?
J'ai fait de nombreuses recherches et je me suis assuré d'avoir ajouté toutes les conditions préalables dont la FCM a besoin.
Des suggestions ?
EDIT :
Exemple de réponse :
{"multicast_id":5340432438815499122,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]}
EDIT 2 :
Voici le code d'envoi côté serveur (PHP) :
$fields = array
(
'to' => $token,
'data' => $data
);
$headers = array
(
'Authorization: key=AIza**************************',
'Content-Type: application/json'
);
$ch = curl_init();
curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send' );
curl_setopt( $ch,CURLOPT_POST, true );
curl_setopt( $ch,CURLOPT_HTTPHEADER, $headers );
curl_setopt( $ch,CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch,CURLOPT_SSL_VERIFYPEER, true );
curl_setopt( $ch,CURLOPT_POSTFIELDS, json_encode($fields) );
curl_exec( $ch );
curl_close( $ch );
UPDATE :
Il semble que le problème ait été résolu avec les mises à jour du SDK. J'utilise maintenant la dernière com.google.firebase:firebase-messaging:9.6.1
je n'ai plus le message "MismatchSenderId".
8 votes
MismatchSenderId signifie que votre client s'inscrit sur un serveur différent de celui que vous utilisez pour envoyer. Tous vos clients s'enregistrent-ils auprès du même projet ? Pourriez-vous également inclure la réponse MismatchSenderId dans la question ?
1 votes
Oui, même projet, même application, même clé de serveur.
0 votes
Pourriez-vous montrer le code de la façon dont vous avez envoyé ce message ? Je pourrais connaître la cause du problème
0 votes
@AnZ j'ai ajouté le code à la question
3 votes
@TareKhoury, merci. Tout d'abord. Assurez-vous que la clé d'autorisation que vous utilisez est
Server Key
(peut être trouvé dans la console firebase dans l'onglet serveur) et non pasAPI_KEY
degoogle-service.json
. Deuxièmement, assurez-vous de définir correctement la destination. Par exemple,to" : "/topics/yourtopic"
si vous voulez envoyer un message à tous les appareils (ils doivent d'abord s'abonner à ce sujet). Ou si vous essayez d'envoyer un message à un appareil particulier, il est alors nécessaire de saisir le jeton de l'appareil (reçu au premier démarrage du service Firebase).cec5gH04....92IyHrB2K
0 votes
Avez-vous résolu ce problème ? Je suis confronté au même problème !
0 votes
@Merlin1896 Non, il y a toujours des problèmes.
0 votes
Je me suis débarrassé du problème mais je ne peux pas vraiment dire ce qui a fait l'affaire. J'ai supprimé mon application de firebase, je l'ai recréée, j'ai supprimé l'application de mon appareil de test pour qu'elle obtienne un nouvel UID de firebase et ça a marché. Le fait de supprimer l'application de Firebase n'a pas modifié la clé du serveur, de sorte que je n'ai pas eu à la modifier dans mon script. Je ne sais vraiment pas ce qui se passe.
0 votes
@TareKhoury J'essaie de réaliser une connexion FCM-XMPP sur Android en utilisant smack lib. Une idée sur la façon d'effectuer la connexion. J'obtiens org.jivesoftware.smack.SmackException$NoResponseException : Aucune réponse reçue dans le délai de réponse. Le délai était de 5000 ms (~5s). Filtre utilisé : Aucun filtre n'a été utilisé ou le filtre était 'null'. après avoir effectué XMPPTCPConnection.login() appel. Toute suggestion !
0 votes
@TareKhoury Je suis confronté au même problème. La même application sur différents téléphones. Certains fonctionnent, d'autres non. Le problème est intermittent pour moi.
0 votes
Assurez-vous d'avoir mis à jour le fichier google-services.json de l'application.
0 votes
Je suis également confronté à ce problème. Je suis capable d'envoyer une notification depuis la console Firebase mais pas depuis le FCM.
3 votes
Quelqu'un a-t-il réussi à résoudre le problème au cours des deux dernières années ?
0 votes
@TareKKhoury Avez-vous obtenu une solution ???
0 votes
@Dylanthepiguy avez-vous obtenu une solution ?
0 votes
Je ne me souviens pas maintenant, désolé @kapilsingh.