gpt4 book ai didi

php - 向多个用户发送推送通知android

转载 作者:太空狗 更新时间:2023-10-29 12:47:24 24 4
gpt4 key购买 nike

我正在尝试向多个用户发送推送通知,当我为 1 个用户执行此操作时,它运行良好,但当我尝试向多个用户发送消息时出现问题。

我收到响应 200 MissingRegistration(所以我想问题是我没有以正确的方式发送 ID)

两个 id 都是正确的,因为如果我将消息分别发送给它们,它就可以工作

这是我的代码

    $gcmcodes=array("one user key","the other user key");

if(isset($_GET['mensaje'])) $message = $_GET['mensaje'];
$message2 = new gcm();
$message2->sendMessageToPhone(2, $message,$gcmcodes);

function sendMessageToPhone($collapseKey, $messageText, $gcmcodes)
{

$apiKey = 'My apikey';

$headers = array('Authorization:key=' . $apiKey);
$data = array(
'registration_ids' => $gcmcodes,
'collapse_key' => $collapseKey,
'data.message' => $messageText);

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://android.googleapis.com/gcm/send");
if ($headers)
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo"<pre>";
var_dump($gcmcode,$response);
echo"</pre>";

if (curl_errno($ch)) {
return 'fail';
}
if ($httpCode != 200) {
return 'status code 200';
}
curl_close($ch);
return "mensaje mandado con exito";

}

最佳答案

您使用的格式一次只能用于发送一个通知。为了向多个注册 ID 发送通知,您必须发送以下格式的 JSON 请求:

{ "collapse_key": "something",
"time_to_live": 108,
"delay_while_idle": true,
"data": {
"message": "some message"
},
"registration_ids":["4", "8", "15", "16", "23", "42"]
}

哦,你得到 MissingRegistration 错误的原因是当你使用纯文本格式时,GCM 期望单个注册 ID 是 registration_id 键的值(不是您尝试过的 registration_ids)。

关于php - 向多个用户发送推送通知android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16522327/

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