如何使用消息 ID 跟踪 FCM 推送通知是否已发送

How to track the FCM push notification whether is is delivered or not using message id

我正在使用 PHP Restful 服务通过 Firebase 云消息传递 (FCM) 向 android 设备发送推送通知。

使用以下 URL 我能够 post 成功将消息发送到 FCM 并获得相应的消息 ID。

https://gcm-http.googleapis.com/gcm/send

但是如何使用上面的消息 ID 知道消息是否已发送到设备。

如有任何帮助,我们将不胜感激。

试试这个:在 php 端你会得到 fcm 的响应,比如

{
    "multicast_id":8042731220476088762,
    "success":1,
    "failu‌‌​​re":0,
    "canonical_‌​i‌​ds":0,
    "results":[‌​{"message_id"‌​:"0:‌​1474456734183‌​863%97d‌​a1d69f9fd7e‌​cd"}]
} 

如果成功为 1,则消息将传送到该 ID

这是一个 JSON 消息成功发送给一个收件人的简单案例,但响应中没有规范 ID:

{ "multicast_id": 108,
  "success": 1,
  "failure": 0,
  "canonical_ids": 0,
  "results": [
    { "message_id": "1:08" }
  ]
}

以下是 6 个收件人(ID 分别为 4、8、15、16、23 和 42)的 JSON 结果,其中 3 条消息已成功处理,返回了 1 个规范注册令牌,以及 3 个错误:

{ "multicast_id": 216,
  "success": 3,
  "failure": 3,
  "canonical_ids": 1,
  "results": [
    { "message_id": "1:0408" },
    { "error": "Unavailable" },
    { "error": "InvalidRegistration" },
    { "message_id": "1:1516" },
    { "message_id": "1:2342", "registration_id": "32" },
    { "error": "NotRegistered"}
  ]
}

成功表示请求处理成功。它可能无法告知消息的准确传递。

要完整理解请read