如何确认Firebase通知实际上已发送(fcm)? - php

我允许用户通过我的网站发送通知。通知正在工作,但是,我想一种方法来实际确认通知是否已发送(以代码形式),或者至少无法确认curl是否有效,因此我可以在网站上显示一条消息,指出它成功还是失败。在我的jquery帖子请求中,即使我在PHP中提供了无效的API_ACCESS_KEY,状态也似乎始终为“成功”(因此,显然它没有发送通知,但仍在说成功)。如何确定通知已发出?感谢您的帮助。

这是我在index.html中的发帖请求:

$("#send-button").click(function(){     
    if($("#send").val().length == 0) {
        return;
    } else {
        $.post("php/send-notification.php",
        {
            notification_message: $("#send").val()
        },
        function(data, status) {
            alert("Data: " + data + "\nStatus: " + status);
            // status seems to always be "success" even with an invalid API_ACCESS_KEY
        });
    }
});

这是send-notification.php:

<?php
    define( 'API_ACCESS_KEY', 'AAA....AAA' );

    $msg = array
    (
        'body'  => $_POST['notification_message'],
        'vibrate'   => 1,
        'sound'     => 1,
        'badge'     => 1
    );

    $fields = array
    (
        'to'            => "/topics/global",
        'notification'  => $msg,
        'priority'      => 'high'
    );

    $headers = array
    (
        'Authorization: key=' . API_ACCESS_KEY,
        'Content-Type: application/json'
    );

    $ch = curl_init();
    curl_setopt( $ch,CURLOPT_URL, 'https://fcm.googleapis.com/fcm/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( $fields ) );
    $result = curl_exec( $ch );
    curl_close( $ch );
?>

php参考方案

您可以使用curl_getinfo
检查响应信息,如果您的状态码200满足所有要求。

$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
if($httpcode == 200) {
    //everything ok
}

php:是否有充分的理由引用所有数组键/索引? - php

我正在遍历别人的代码,他们总是避免转义其数组键。例如:$ row_rsCatalogsItems [名称]代替$ row_rsCatalogsItems ['名称']因此,我不断地对自己接触的所有事物进行微小的更改,以应对这些惰性。但是现在我想知道这样做是否有很多好处。我得到它会在默认为字符串之前检查常量(我在处理常量时会讨厌php中的行为,因为即使未定义,…

jQuery-如何将Hide()与复选框配合使用以启用Animation(transition)? - php

问题:如何将JQuery Hide()与动画一起用于网页的各个部分?目前正在使用CSS:不显示任何内容。码的CSS.hide { display: none; } 的HTML<input type="checkbox" id="toggle-event-Sports" > <section class…

PHP标头功能不起作用 - php

我曾经使用此功能从一个PHP页面重定向到另一个:header( 'Location: student.php?cnp='.$_REQUEST['name']) ; 在我的本地主机中,它确实可以工作,但是如果在Internet中对其进行测试,则不会重定向。我也尝试给出完整的路径(如http://.../student.p…

PHP数组可以这样做吗? - php

可以说;我有一个$ friends数组,其中有2,000个不同的friendID号+我有一个带有10,000 bulletinID号的$ bulletins数组,该$ bulletins数组还将具有另一个值,该ID的用户ID是发布公告条目的用户现在可以获取所有具有与FriendsID数组中的userID匹配的userID的bulletinID号吗?甚至有可能…

PHP中的可选函数输入 - php

我注意到在一些内置的PHP函数中,例如str_replace,有一些可选的输入变量。我可以在自己的函数中有可选的输入变量吗?如果是这样,怎么办?谢谢,布赖恩 php参考方案 第一种方法是对某些参数使用默认值:function doStuff($required, $optional = '', $optional2 = '�…