这是我的第一篇文章,所以请原谅任何新奇的愚蠢。我一直在尝试正确解决这一问题,已经连续6天了。我希望能够通过运行在线服务器上的php文件从PC触发Android手机上的通知。
在GCM,FCM旧版,FCM V1和Firebase本身上可用的所有文本和视频之间,事实证明不可能找到有关如何实现此目的的连贯示例或教程。
根据“ Visual Dynamics,Inc.的@Jay总裁的建议”我已将代码减少到我认为会导致加速的部分。
在这里:我已成功在我的在线MYSQL DB中注册并保存了FCM令牌。我得到以下内容并将其保存到MYSQL ...
{“端点”:“ https://fcm.googleapis.com/fcm/send/fn2AxrA1DLI:APA **************************************** * G31“,” expirationTime“:null,” keys“:{” p256dh“:” BGwqbu2 ********************************* ********* vCqSenne4KABWuGN6x3w“,” auth“:” xasG3yCzA ************* l7hA“}}
现在,我想使用该令牌向注册该令牌的设备(我的Android手机)发送一个非常基本的“ Hello World”。我想从我的家用计算机运行一个发送“ hello world”的文件。这是应该触发发送的文件代码,请记住注册已成功。
<?php
$ch = curl_init();
$posts =
array(
"subscription" => array(
"endpoint" => "https://fcm.googleapis.com/fcm/send/fn2AxrA1DLI:APA9**********************etc",
"expirationTime" => null,
"keys" => array(
"p256dh"=>"BGwqbu2lNL7**********BWuGN6x3w",
"auth" =>"xas*****************7hA"
)
),
"data" => $_GET["msg"],
"applicationKeys" => array(
"public" => "BBY6vTaImSYSLkhO-***********************",
"private" => "HBcroD*****************************"
)
);
$headers = array(
'Content-Type:application/json',
'Authorization:key='. "AIzaSyAy******************K7xvha2GaA0");
curl_setopt($ch, CURLOPT_URL, "https://fcm.googleapis.com/fcm/send");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($posts));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
$result = curl_exec($ch);
echo($result);
if (curl_errno($ch)) {
echo 'Error:' . curl_error($ch);
}
curl_close ($ch);?>
就目前而言,我没有收到任何错误,结果只显示“ to”到我的屏幕,而在手机上没有通知。
我已经读到我需要对消息进行加密,但是我不确定这是否适用于旧版FCM。我已经在Google开发人员控制台上激活了FCM,并在Firebase中创建了一个项目,并且确实生成了公钥和私钥。
如您所见,我在这里很迷路,任何能指出正确方向的人都会给我儿子起名!