更新时间:2022-02-24 GMT+08:00

设备消息确认通知

典型场景

第三方应用在物联网平台订阅了设备消息确认通知后(订阅的通知类型为messageConfirm),当平台向设备下发命令,并收到设备返回的命令确认消息(如命令已送达、已执行等)时,平台会向第三方应用推送通知消息。

接口功能

支持物联网平台向订阅了设备消息确认通知的第三方应用推送通知消息。

注意事项

  1. 应用在订阅平台业务数据时需要订阅接口描述中的指定回调地址,回调地址中的server与port为应用服务器公网地址与服务器配置中指定的端口。
  2. 应用通过PushMessageReceiver类并重写回调接口接收推送消息的内容。
  3. 如果回调地址不是应用服务器本身的地址,则第三方应用需要自己实现原始回调接口,接口内容请参考IoT平台北向API参考中的消息推送章节。

接口描述

回调地址

https://server:port/v1.0.0/messageReceiver

回调接口

def handleMessageConfirm(self)

接口所属类

PushMessageReceiver

参数说明

入参是request.json

参数

必选/可选

类型

位置

描述

nmcDTO

必选

NotifyMessageConfirmDTO

body

见下表NotifyMessageConfirmDTO的描述。

NotifyMessageConfirmDTO

参数

必选/可选

类型

位置

描述

notifyType

必选

String

body

通知类型,取值:“messageConfirm”

header

必选

MessageConfirmHeader

body

具体参见下表MessageConfirmHeader结构说明。

body

必选

ObjectNode

body

根据业务具体定义,确认消息可以携带的状态变化等消息。

MessageConfirmHeader结构说明:

参数

必选/可选

类型

位置

描述

requestId

必选

String(1-128)

body

消息的序列号,唯一标识该消息。

from

必选

String(1-128)

body

表示消息发布者的地址。

  • 设备发起的请求:“/devices/{deviceId}”
  • 设备服务发起的请求:“/devices/{deviceId}/services/{serviceId}”

to

必选

String(1-128)

body

表示消息接收者的地址,To就是订阅请求中的From,如第三方应用的userId。

status

必选

String(1-32)

body

命令状态。

  • “sent”:已发送
  • “delivered”:已送达
  • “executed”:已执行

timestamp

必选

String(1-32)

body

时间戳,时间格式:yyyyMMdd'T'HHmmss'Z',如:“20151212T121212Z”

响应参数

Status Code: 200 OK

请求示例

Method: POST
request: {callbackUrl}
Header:
Content-Type:application/json
Body:
{
    "notifyType":"messageConfirm",
    "header":{
        "requestId":"***********",
        "from":"***********",
        "to":"***********",
        "status":"delivered",
        "timestamp":"20151212T121212Z"
    },
    "body":{

    }
}

响应示例

response:
Status Code: 200 OK