我有下面的代码,我试图将 FCM 推送通知发送到针对特定设备的 Android 应用程序。在终端中运行 php Push.php 我没有得到任何结果,也没有错误。
请帮助我这里出了什么问题,我可以使用旧版 FCM API 发送,但无法使用 HTTP v1
<?php
$serviceAccount = json_decode(file_get_contents('privatekey.json'), true);
$serverKey = $serviceAccount['private_key'];
$projectId = $serviceAccount['project_id'];
$data = [
'message' => [
'token' => 'd6dYpnaLSP2zRk4o6dFfFZ:APA91bG-ZB7XFB-01K54cEVAiyMuqbKyBGhYX-XeiR2QcC3QKv1-MXI4wAy_cwL-d1TLNOUkF-pqt0WQed4b2VcL8OeBxXOPVwrMiWv69TkDRRidOPUw_YjA-ISsgCNoxlWUIb5V_PV6',
'notification' => [
'title' => 'Your Title',
'body' => 'Your Message',
],
],
];
$headers = [
'Authorization: Bearer ' . $serverKey,
'Content-Type: application/json',
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://fcm.googleapis.com/v1/projects/notifizy/messages:send');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = curl_exec($ch);
curl_close($ch);
echo $result;
?>
我已经尝试了所有旧版 FCM API 都可以工作,但这个不行。
<?php
define('SERVER_API_KEY', 'MYSERVERAPIKEY');
$data = array(
"to" => "$RECIVER_TOKEN",
"notification" => array(
"title" => "Test-Title",
"body" => "Test-Message")
);
$headers = array(
'Content-Type: application/json',
'Authorization: key=' . SERVER_API_KEY
);
$url = 'https://fcm.googleapis.com/fcm/send';
$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, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
$result = curl_exec($ch);
if ($result === FALSE) {
echo 'FCM Send Error: ' . curl_error($ch);
die('FCM Send Error: ' . curl_error($ch));
}
curl_close($ch);
echo $result;
?>