FCM通知回复服务器
FCM notification reply to server
有一种推送通知服务,可将消息从网络服务器发送到应用程序设备。该应用程序已实现 onMessageReceived() 方法。然而,并不是所有的消息都被传递,我在某处读到 delivery_receipt_request 字段,当设置为 true 时(FCM ), 回复服务器提及消息是否已发送。我想知道,如果消息发送到发件人的端代码,我如何才能从应用程序中获取回复。
选项 1:通过 XMPP
您需要在后端 运行 XMPP 客户端。此客户端应使用您的项目参数连接到 FCM。然后,您将能够处理 FCM 发送给您的消息传递节。以下是婴儿步骤:
- 按照 https://www.npmjs.com/package/node-xcs 中的步骤设置 XMPP 客户端,使用您的 FCM 项目参数导出环境变量。
- 你可以通过那里发送消息。
- 侦听消息传递节:
client.on('stanza', function(stanza) {
//HERE IS WHERE YOU PROCESS THE STANZA
console.log('Please process me. I AM, the stanza: ', stanza.toString())
})
您将获得的消息传递节如下所示:
<message id="">
<gcm xmlns="google:mobile:data">
{
"category":"com.example.yourapp", // to know which app sent it
"data":
{
“message_status":"MESSAGE_SENT_TO_DEVICE",
“original_message_id”:”m-1366082849205”
“device_registration_id”: “REGISTRATION_ID”
},
"message_id":"dr2:m-1366082849205",
"message_type":"receipt",
"from":"gcm.googleapis.com"
}
</gcm>
</message>
目前只有 CCS (XMPP) 支持上游消息传递。打败自己。
选项 2:通过 HTTP
现在,如果您决定使用 FCM HTTP 协议来发送消息,那么您将必须解释在进行 HTTP 调用时返回的响应。您可以通过查看 HTTP 响应 header 和响应 body 中的错误来判断消息是否已送达。此处描述了响应的结构:https://firebase.google.com/docs/cloud-messaging/http-server-ref#interpret-downstream
再一次,把自己打倒。
有一种推送通知服务,可将消息从网络服务器发送到应用程序设备。该应用程序已实现 onMessageReceived() 方法。然而,并不是所有的消息都被传递,我在某处读到 delivery_receipt_request 字段,当设置为 true 时(FCM ), 回复服务器提及消息是否已发送。我想知道,如果消息发送到发件人的端代码,我如何才能从应用程序中获取回复。
选项 1:通过 XMPP
您需要在后端 运行 XMPP 客户端。此客户端应使用您的项目参数连接到 FCM。然后,您将能够处理 FCM 发送给您的消息传递节。以下是婴儿步骤:
- 按照 https://www.npmjs.com/package/node-xcs 中的步骤设置 XMPP 客户端,使用您的 FCM 项目参数导出环境变量。
- 你可以通过那里发送消息。
- 侦听消息传递节:
client.on('stanza', function(stanza) {
//HERE IS WHERE YOU PROCESS THE STANZA
console.log('Please process me. I AM, the stanza: ', stanza.toString())
})
您将获得的消息传递节如下所示:
<message id="">
<gcm xmlns="google:mobile:data">
{
"category":"com.example.yourapp", // to know which app sent it
"data":
{
“message_status":"MESSAGE_SENT_TO_DEVICE",
“original_message_id”:”m-1366082849205”
“device_registration_id”: “REGISTRATION_ID”
},
"message_id":"dr2:m-1366082849205",
"message_type":"receipt",
"from":"gcm.googleapis.com"
}
</gcm>
</message>
目前只有 CCS (XMPP) 支持上游消息传递。打败自己。
选项 2:通过 HTTP
现在,如果您决定使用 FCM HTTP 协议来发送消息,那么您将必须解释在进行 HTTP 调用时返回的响应。您可以通过查看 HTTP 响应 header 和响应 body 中的错误来判断消息是否已送达。此处描述了响应的结构:https://firebase.google.com/docs/cloud-messaging/http-server-ref#interpret-downstream
再一次,把自己打倒。