PHP GCM message d'erreur MismatchSenderId
Je suis confronté au problème avec GCM de notification push. J'obtiens l'erreur suivante.
{
"multicast_id":4630467710672911593,
"success":0,
"failure":1,
"canonical_ids":0,
"results":[{
"error":"MismatchSenderId"
}]
}
Voici le code. Toute aide serait vraiment appréciée. Merci à l'Avance.
public function gcmPush()
{
$regId = "APA91bHFcgOssQZEqtdUk3EC1ojwC5-LVG3NPV2bMqKyC9rPymR6StmAbz-N7Ss8fnvruZhWWNrR3lmBqpjQItlu00AKHPbltBclUJF-EfC5qG4CF2xiuYYC0NCf8u5rbiYFk8ARhIT4lY2AEPWzGpl1OtTvQEC0gA";
$registatoin_ids = array($regId);
$message = array("msg" => 12345);
$this->send_notification($registatoin_ids, $message);
}
public function send_notification($registatoin_ids, $message)
{
//Set POST variables
$url = 'https://android.googleapis.com/gcm/send';
define('GOOGLE_API_KEY', 'AIzaSyBavsIgQKo1Nf9wKZ5o_fGvE_6MI52LFR0');
$fields = array(
'registration_ids' => $registatoin_ids,
'data' => $message,
);
$headers = array(
'Authorization: key=' . GOOGLE_API_KEY,
'Content-Type: application/json'
);
//Open connection
$ch = curl_init();
//Set the url, number of POST vars, POST data
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//Disabling SSL Certificate support temporarly
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
//Execute post
$result = curl_exec($ch)
if ($result === FALSE) {
die('Curl failed: ' . curl_error($ch));
}
//Close connection
curl_close($ch);
echo $result;
}
double possible de Lors de l'envoi de messages à l'aide de GCM , je reçois la réponse : MismatchSenderId
Salut s'il vous plaît vérifier cette stackoverflow.com/questions/11307689/..., je l'espère, utile pour vous.
Salut s'il vous plaît vérifier cette stackoverflow.com/questions/11307689/..., je l'espère, utile pour vous.
OriginalL'auteur user2509333 | 2013-06-24
Vous devez vous connecter pour publier un commentaire.
"MismatchSenderId" est le problème évident que nous sommes aujourd'hui.
Ici sont les cas possibles à l'origine de ce problème.
Cas 1: le Décalage Sender ID ->
Veuillez vérifier le numéro de Projet qui vous utilisez. Si elle est correcte ou non.
Cas 2: la Mauvaise Clé API ->
Assurez-vous que vous utilisez le même API_Key ou pas. Et dans la plupart des cas, nous avons besoin de générer Server_Key au lieu de Android_Key.
Cas 3: Mauvais Appareil ID ->
La plupart du temps le problème est dû à la mauvaise ID de l'Appareil(numéro d'Enregistrement généré par GCM).
Veuillez vous assurer que Chaque fois que vous générer une nouvelle clé API, l'id de périphérique de votre appareil est changé. Ensuite, il faudra près de 5 minutes pour obtenir un effet.
Remarque : l'identifiant de Votre appareil est lié avec la CLÉ API.
....
Pour Résumer. Ce n'est PAS un Android Studio, Android OS, ou un problème de Périphérique. Le GCM serveurs ne sont pas à même d'essayer d'envoyer le message à l'appareil. Mon serveur envoie à GCM, il renvoie le message...
pour le serveur. Aussi loin que je peux dire que cela signifie que l'Appareil ID (celui retourné à l'appareil quand il a enregistré pour un push, et de celui enregistré sur le serveur principal (dans le panneau de contrôle) ne correspondent pas, ou est en quelque sorte pas associés avec la Clé API utilisée lors de l'envoi du message.
L'envoi, bien sûr, commence sur mon serveur, va à la GCM, puis va à l'appareil.
C'est ce qui n'est pas le cas. Le message est envoyé à partir de mon serveur GCM et revenir à mon serveur avec le message d'erreur.
Super frustrant comme vous pouvez l'imaginer, nous avons tous été à travers ce cauchemar avant 🙂
Référence : https://www.buzztouch.com/forum/thread.php?tid=C3CED924C86828C2172E924
Espère qu'il permettra de résoudre votre problème.
OriginalL'auteur KishuDroid