gpt4 book ai didi

php - 无法使用 FCM 向多个设备发送通知

转载 作者:行者123 更新时间:2023-12-05 00:17:16 25 4
gpt4 key购买 nike

我仅在一个设备中收到通知,该设备设置为存储在 mySQL DB 中的表的第一个 token ,并且通知不会发送到其余的 token 编号。我试过 WHILE循环并将 token 编号存储在一个数组中,但它不起作用。

请提出解决方案。谢谢你。

这是我的代码:

enter image description here

<?php
require "init.php";
$message=$_POST['message'];
$title=$_POST['title'];
$path_to_fcm='https://fcm.googleapis.com/fcm/send';
$server_key="A*************************Q";
$sql="select token from fcm_info";
$result =mysqli_query($con,$sql);
$row=mysqli_fetch_row($result);
$key=$row[0];
$headers = array(

'Authorization:key=' .$server_key,
'Content-Type:application/json'
);
$fields =array('to'=>$key,
'notification'=>array('title'=>$title,'body'=>$message));

$payload =json_encode($fields);
$curl_session =curl_init();
curl_setopt($curl_session,CURLOPT_URL, $path_to_fcm);
curl_setopt($curl_session,CURLOPT_POST, true);
curl_setopt($curl_session,CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl_session,CURLOPT_RETURNTRANSFER,true);
curl_setopt($curl_session,CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_session,CURLOPT_IPRESOLVE, CURLOPT_IPRESOLVE);
curl_setopt($curl_session,CURLOPT_POSTFIELDS, $payload);
$result=curl_exec($curl_session);
curl_close($curl_session);
mysqli_close($con);
?>

最佳答案

使用“registration_ids”而不是“to”并传递逗号分隔的多个注册 id 以在 FCM 中使用多播。最终的有效载荷应该是这样的:

{
"registration_ids":["id1","id2",...],
"priority" : "normal",
"data" : {
"title" : "Title",
"message" : "Message to be send",
"icon": "icon_path"
}
}

https://developers.google.com/cloud-messaging/http-server-ref寻求更多帮助

关于php - 无法使用 FCM 向多个设备发送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41115482/

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