我是php新手。我正在用PHP实现Firebase推送通知服务。
所需的json对象就像
{ "data": {
"score": "5x1",
"time": "15:10"
},
"to" : "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
}
现在在firebase中我必须以这种格式发送我的数据,但我不知道如何制作这些数据的JSON对象并在firebase中使用这个对象。
如果我想使用ID数组,那么它将如何运作?
根据官方的firebase文档,他们没有定义使用ID数组的方法。
答案 0 :(得分:0)
创建一个与您希望发送到Firebase的格式相同的数组,如下所示
$arr = ['data'=> [
'score'=> "5x1",
'time'=> "15:10"
],
"to" => "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
];
然后使用php函数json_encode(var);它将返回json对象。
json_encode($arr)
如果我想使用id的数组,那么这将如何工作。 我不确定这一点。
答案 1 :(得分:0)
如果您尝试使用PHP发送POST,可以使用cURL:
<?php
$firebase_url = 'https://fcm.googleapis.com/fcm/send';
$message = [
"data" => [
"score" => "5x1",
"time" => "15:10"
],
"to": "bk3RNwTe3H0:CI2k_HHwgIpoDKCIZvvDMExUdFQ3P1..."
];
$json_message = json_encode($message);
//open connection
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $firebase_url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $json_message);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json',
'Content-Length: ' . strlen($json_message)
]);
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
//execute post
$result = curl_exec($ch);
print $result;
我会建议使用Guzzle,它是第三方库,更清洁,更实用/可理解。安装它:
php composer.phar require guzzlehttp/guzzle