Web应用程序旧版FCM通知未到达我的Android手机

时间:2019-02-19 13:44:21

标签: android firebase firebase-cloud-messaging push

这是我的第一篇文章,所以请原谅任何新奇的愚蠢。我一直在尝试正确解决这一问题,已经连续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中创建了一个项目,并且确实生成了公钥和私钥。

如您所见,我在这里很迷路,任何能指出正确方向的人都会给我儿子起名!

0 个答案:

没有答案