RainMaker 推送通知有效载荷
请按照推送通知中的步骤配置并启用通知推送。
推送通知方案
安卓系统
亚马逊 SNS 服务支持 Firebase Cloud Messaging (FCM) 向安卓用户发送通知。谷歌云端推送 (Google Cloud Messaging, GCM) 是其原版,现已弃用。亚马逊 SNS 服务在 FCM 和 GCM 后台使用的都是 FCM。
自 2024 年 7 月 22 日起,谷歌不再支持通过旧版 FCM API 推送移动端通知。RainMaker 现已改用新的 FCM HTTP v1 API 格式。
注意:尽管消息格式发生了变化,但移动应用程序接收到的仍然只是安卓通知有效载荷中的 "data" 键,与之前保持一致。
RainMaker 发送的未转义有效载荷(旧格式):
{
"GCM": "{
"data": {
"title": "ESP RainMaker",
"body": "",
"event_data_payload": {
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.<event_type>",
"timestamp": 1648563678737,
"description": "",
"event_data": {}
}
}
}"
}
RainMaker 发送的未转义有效载荷(新格式):
{
"GCM": "{
"fcmV1Message": {
"message": {
"data": {
"title": "ESP RainMaker",
"body": "",
"event_data_payload": "{
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.<event_type>",
"timestamp": 1648563678737,
"description": "",
"event_data": {}
}"
}
}
}
}"
}
手机应用接收到的未转义 JSON 事件详情格式如下:
{
"data": {
"title": "ESP RainMaker",
"body": "",
"event_data_payload": "{
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.<event_type>",
"timestamp": 1648563678737,
"description": "",
"event_data": {}
}"
}
}
手机应用仅接收 "data" 键值部分,该部分在旧版格式和 FCMv1 格式中保持一致。如有需要,可以修改通知的有效载荷内容。
iOS 系统
亚马逊 SNS 服务支持通过苹果推送通知服务 (Apple Push Notification, APNs) 向 iOS 用户发送通知。你可以使用 APNs 沙盒通道向 APNs 的沙盒环境发送推送通知信息以进行产前测试。
RainMaker 推送通知有效载荷的格式为:
{
"APNS/APNS_SANDBOX": "Escaped JSON event details with iOS supported attributes"
}
手机应用收到转义后的 JSON 事件详情的格式为:
{
"aps": {
"alert": {
"title": "ESP RainMaker",
"body": "",
"event_data_payload": {
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.<event_type>",
"timestamp": 1648563678737,
"description": "",
"event_data": {}
}
},
"mutable-content": 1
}
}
如果需要,你也可以更改通知的有效载荷。点击此处参考更多信息。
在当前 iOS 有效载荷中,除节点参数变更事件外,所有事件均已添加默认值的 sound 键,用于触发带默认声音的通知。
推送通知有效载荷
注意:以下按事件分类的有效载荷为了便于阅读,在所有层级均已进行了未转义处理。实际接收到的有效载荷是经过转义的有效 JSON 有效载荷。以下是某个事件(例如:节点警报)的实际转义有效载荷示例。
| 安卓 | iOS |
|---|---|
| {"GCM": "{\"fcmV1Message\":{\"message\":{\"data\":{\"title\":\"ESP RainMaker\",\"body\":\"Alert received from a node\",\"event_data_payload\":\"{\\\"event_version\\\":\\\"v1\\\",\\\"id\\\":\\\"1\\\",\\\"event_type\\\":\\\"rmaker.event.alert\\\",\\\"timestamp\\\":1648706009358,\\\"description\\\":\\\"Alert received from a node\\\",\\\"event_data\\\":{\\\"message_body\\\":\\\"{\\\\\\"Alert\\\\\\":\\\\\\"Sample alert\\\\\\"}\\\",\\\"node_id\\\":\\\"EPRoUZemZPDiHjKrHoD74f\\\"}}\"}}}}"} | { "APNS": "{\"aps\":{\"alert\":{\"title\":\"ESP RainMaker\",\"body\":\"Alert received from a node\",\"event_data_payload\":{\"event_version\":\"v1\",\"id\":\"1\",\"event_type\":\"rmaker.event.alert\",\"timestamp\":1648706009358,\"description\":\"Alert received from a node\",\"event_data\":{\"message_body\":\"{\\\"Alert\\\":\\\"Sample alert\\\"}\",\"node_id\":"\EPRoUZemZPDiHjKrHoD74f\"}}},\"mutable-content\":1,\"sound\":\"default\"}}"} |
关于特定事件的推送通知有效载荷,请参考以下未转义有效载荷示例。
1. 已连接节点
安卓
{
"data": {
"title": "ESP RainMaker",
"body": "Node(s) connected to cloud",
"event_data_payload": "{
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.node_connected",
"timestamp": 1648563678737,
"description": "Node(s) connected to cloud",
"event_data": {
"user_id": "1fd342a3-7531-48a0-9d97-4242a8502ed4",
"node_id": "EPRoUZemZPDiHjKrHoD74f",
"connectivity": {
"connected": true,
"timestamp": 1648563678517
}
}
}"
}
}
iOS
{
"aps": {
"alert": {
"title": "ESP RainMaker",
"body": "Node(s) connected to cloud",
"event_data_payload": {
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.node_connected",
"timestamp": 1648563678737,
"description": "Node(s) connected to cloud",
"event_data": {
"user_id": "1fd342a3-7531-48a0-9d97-4242a8502ed4",
"node_id": "EPRoUZemZPDiHjKrHoD74f",
"connectivity": {
"connected": true,
"timestamp": 1648563678517
}
}
}
},
"mutable-content": 1,
"sound": "default"
}
}
2. 节点断开连接
安卓
{
"data": {
"title": "ESP RainMaker",
"body": "Node(s) disconnected from cloud",
"event_data_payload": "{
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.node_disconnected",
"timestamp": 1648563564021,
"description": "Node(s) disconnected from cloud",
"event_data": {
"user_id": "1fd342a3-7531-48a0-9d97-4242a8502ed4",
"node_id": "EPRoUZemZPDiHjKrHoD74f",
"connectivity": {
"connected": false,
"timestamp": 1648563558181
}
}
}"
}
}
iOS
{
"aps": {
"alert": {
"title": "ESP RainMaker",
"body": "Node(s) disconnected from cloud",
"event_data_payload": {
"event_version": "v1",
"id": "1",
"event_type": "rmaker.event.node_disconnected",
"timestamp": 1648563564021,
"description": "Node(s) disconnected from cloud",
"event_data": {
"user_id": "1fd342a3-7531-48a0-9d97-4242a8502ed4",
"node_id": "EPRoUZemZPDiHjKrHoD74f",
"connectivity": {
"connected": false,
"timestamp": 1648563558181
}
}
}
},
"mutable-content": 1,
"sound": "default"
}
}