gpt4 book ai didi

PHP GCM 错误信息 MismatchSenderId

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:06:56 25 4
gpt4 key购买 nike

我正面临 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 key ->请确定您是否使用相同的 API_Key。并且在大多数情况下,我们需要生成 Server_Key 而不是 Android_Key。

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

请确保每当您生成新的 API key 时,您设备的设备 ID 都会更改。然后差不多要5五分钟才会有效果。

注意:您的设备 ID 与 API KEY 绑定(bind)。

所以....

--New Key created.

--GCM for Android Turned "on" in Google Dev. Console.

--Device registered with backend fine (Android Project is doing its job). Device key on the server.

--Send to device. Fail! The same message is returned from GCM everytime.

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

{"multicast_id":6047824495557336291,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"MismatchSenderId"}]} 

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

当然,发送从我的服务器开始,转到 GCM,然后转到设备。

这是没有发生的事情。消息从我的服务器发送到 GCM,然后返回到我的服务器 - 出现错误。

正如你们所有人想象的那样 super 令人沮丧 - 我们之前都经历过这种噩梦般的事情:-)

引用:https://www.buzztouch.com/forum/thread.php?tid=C3CED924C86828C2172E924

希望能解决您的问题。

关于PHP GCM 错误信息 MismatchSenderId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17274351/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com