我正在使用Firebase API,使用php并使用JSON格式发送post数据。响应会给出message_id
,但消息无法传送。
当我使用Firebase控制台而不是API使用相同的字段时,它成功地被传送。
我的php代码:
<?php
$json_data = '{ "data": {
"title": "Hey you got a message",
"text": "Hi from firebase api"
},
"to": "/topics/all",
"priority": "high"
}';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/fcm/send');
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Authorization:key="Used my server key here"'
));
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
echo $output;
?>
响应:
{"message_id":64666973642901*****}
PS:使用星号隐藏了信息。
更新:
当我将to
字段设置为特定令牌时,消息正在传递。 但是,当它设置为topics/all
时不起作用。
除了控制台之外,我们还有其他方法可以将其发送到与应用程序相关联的所有人吗?