PHP GCM错误消息MismatchSenderId

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了PHP GCM错误消息MismatchSenderId脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正面临着GCM推送通知的问题.我收到以下错误.
{
  "multicast_id":4630467710672911593,"success":0,"failure":1,"canonical_ids":0,"results":[{
      "error":"MismatchSenderId"
  }]
}

以下是代码.任何帮助将非常感激.提前致谢.

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;
}
“MismatchSenderId”是我们现在遇到的明显问题.

以下是导致此问题的可能情况.

案例1:发件人ID不匹配 – >
请检查您正在使用的项目编号.如果它是正确的.

案例2:错误的API密钥 – >
请确保您使用的是相同的API_Key.在大多数情况下,我们需要生成Server_Key而不是Android_Key.

案例3:设备ID错误 – >
大多数情况下,问题是由于错误的设备ID(GCM生成注册ID).

请确保无论何时生成新的API密钥,设备的设备ID都会发生变化.然后将需要将近5五分钟才能获得效果.

注意:您的设备ID与API KEY绑定.

所以….

回顾一下.这不是Android Studio,Android操作系统或设备问题. GCM服务器甚至没有尝试将消息发送到设备.我的服务器发送到GCM,它返回消息……

{"multicast_id":6047824495557336291,"results":[{"error":"MismatchSenderId"}]}

到服务器.据我所知,这意味着设备的ID(注册推送时返回设备的ID,后端(控制面板中)保存的ID不匹配,或者与API无关)发送消息时使用的密钥.

当然,发送在我的服务器上启动,转到GCM,然后转到设备.

这就是没有发生的事情.消息从我的服务器转到GCM并返回到我的服务器 – 出错.

你们所有人都可以想象的超级沮丧 – 我们之前都经历过这种噩梦般的东西:-)

参考:https://www.buzztouch.com/forum/thread.php?tid=C3CED924C86828C2172E924

希望它能解决你的问题.

脚本宝典总结

以上是脚本宝典为你收集整理的PHP GCM错误消息MismatchSenderId全部内容,希望文章能够帮你解决PHP GCM错误消息MismatchSenderId所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。