Php 如何一次向不同主题发送FCM多个通知消息

Php 如何一次向不同主题发送FCM多个通知消息,php,android,firebase,notifications,firebase-cloud-messaging,Php,Android,Firebase,Notifications,Firebase Cloud Messaging,我检查了许多答案,它们都是关于向不同的主题发送通知的,但我想同时向不同的主题发送不同的消息 我有100多个主题要发送通知,一个接一个发送会花费太多时间 我没有找到任何API文档,所以我尝试了不同的技术,比如$fields发送多维数组,但它返回了一个错误 我的代码一次只发送1个通知 如何在一个请求中发送所有消息 //通过PHP Curl请求发送 $url='1https://fcm.googleapis.com/fcm/send'; $msgs=array(); $msgs[“主题1”]=数组(“

我检查了许多答案,它们都是关于向不同的主题发送通知的,但我想同时向不同的主题发送不同的消息

我有100多个主题要发送通知,一个接一个发送会花费太多时间

我没有找到任何API文档,所以我尝试了不同的技术,比如$fields发送多维数组,但它返回了一个错误

我的代码一次只发送1个通知

如何在一个请求中发送所有消息

//通过PHP Curl请求发送
$url='1https://fcm.googleapis.com/fcm/send';
$msgs=array();
$msgs[“主题1”]=数组(“标题”=>“标题1”,“正文”=>“主题1消息”);
$msgs[“topic_2”]=数组(“title”=>“title 2”,“body”=>“topic 2消息”);
$msgs[“topic_3”]=数组(“title”=>“title 3”,“body”=>“topic 3消息”);
...
$msgs[“topic_100”]=数组(“title”=>“title 100”,“body”=>“topic 100消息”);
foreach($msgs作为$topic=>$message){
$fields=数组(
'至'=>“/topics/$topic”,
“优先级”=>“高”,
“数据”=>$message,
“生存时间”=>7200
);
$headers=array('Authorization:key=API\u key',
'内容类型:应用程序/json'
);
$ch=curl_init();
curl_setopt($ch,CURLOPT_URL,$URL);
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_POSTFIELDS,json_encode($fields));
$result=curl\u exec($ch);
卷曲关闭($ch);
}//循环结束
//上述代码一次只发送1条消息。。
请参阅此

您可以使用按摩中的条件参数向多个主题发送通知

例如,以下条件将向订阅TopicA和TopicB或TopicC的设备发送消息:

“主题中的‘TopicA’&(主题中的‘TopicB’| | |主题中的‘TopicC’)”

完整示例:

//定义将发送到已订阅设备的条件
//谷歌股票或科技行业话题。
var条件=“主题中的‘股票-股票’| |主题中的‘工业技术’”;
//请参阅有关定义消息负载的文档。
var消息={
通知:{
标题:“$GOOG当天上涨1.43%”,
正文:“$GOOG上涨11.80点,收于835.67点,当天上涨1.43%”
},
条件:条件
};
//向订阅主题组合的设备发送消息
//由提供的条件指定。
admin.messaging().send(消息)
。然后((响应)=>{
//响应是消息ID字符串。
console.log('已成功发送消息:',响应);
})
.catch((错误)=>{
console.log('发送消息时出错:',错误);
});