如何确认实际发送了firebase通知(fcm)?

我允许用户通过我的网站发送通知。 通知正在运行,但是,我想要一种方法来实际确认通知是否已发出(在代码中),或者如果不可能至少确认curl有效,那么我可以在我的网站上显示一条消息它要么成功要么失败了。 在我的jquery post请求中,状态似乎总是“成功”,即使我在我的php中提供了无效的API_ACCESS_KEY(因此它显然没有发送通知但它仍然说成功)。 我如何确定通知已发出? 感谢任何帮助。

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

$("#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:

  $_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 ); ?> 

您可以使用curl_getinfo

检查响应信息,如果您的状态代码200满足一切正常。

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

你将获得$ result = curl_exec($ ch)的成功结果; 结果格式为

  "multicast_id": 6581315937669460028, "success": 1, "failure": 0, "canonical_ids": 0, "results": [ { "message_id": "0:1495111364345221%d8a1cb15f9fd7ecd" } ] }