我正在测试Firebase JSON,以检查发送到新闻应用的通知的送达回执。我可以成功地将消息发送到Android应用程序而没有任何问题,我在我的Android应用程序上收到消息。但是,我想知道如何以及在哪里可以检查通知是否已成功发送到Android应用程序?
如何使用返回的message_id
和/或multicast_id
来获取通知的投放状态?我无法找到使用Firebase检查交付状态的工作代码示例。是否有人使用JSON代码通过message_id
和/或multicast_id
或其他方式查询Firebase消息的投放状态? Firebase文档没有提供有关如何执行此操作的示例(或者我可能错过了示例)。
请参阅下面用于向Firebase新闻应用发送通知的Firebase JSON。任何人的帮助都非常感谢。
在标题中,我设置了授权key=firebase_server_key
和内容类型设置为application/json
{
"to" : "token received from firebase",
"notification" : {
"body" : "test",
"title" : "Alert",
"icon" : "myicon",
"delivery_receipt_requested": true
}
}
邮递员输出:
{"multicast_id":7845213569874521,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:4853214789631%31bd1c9631bd1c96"}]}
答案 0 :(得分:8)
更新
The Diagnostics Tool has been removed since Nov. 30, 2017:
您无法再在Play控制台中访问FCM诊断数据。
确认@ user7410521在评论部分中说了什么。除了使用FCM Diagnostics Page之外,目前没有可用的API来使用message_id
s / multicast_id
来检索所发送邮件的投放状态的详细信息。还要记住,“诊断”页面仅在应用程序已发布时可用(对于Alpha测试或更高版本)。
我注意到您在有效负载中包含了delivery_receipt_requested
参数。接收消息确认应足以确定设备是否收到消息。
答案 1 :(得分:-2)
虽然到目前为止还没有API,但我也能找到答案。我尝试了一个工作方式。从服务器端PHP我发送FCM消息。让我介绍一下我是如何用PHP处理的。
$fcm_return = fcm_message_send($message);
$fcm_return_JSON = json_decode($fcm_return, true);
echo $$fcm_return_JSON['success'];
当我向一个设备发送消息时,我将返回与1进行比较。基于此,您可以进一步实现您的逻辑。