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

订阅平台业务数据

典型场景

第三方应用可在物联网平台订阅设备相关的业务数据,当物联网平台中设备的业务信息发生变化时(如设备注册、设备数据上报、设备状态变更等),平台会向第三方应用发送通知消息,通知其具体的变化信息。第三方应用可以调用此接口向物联网平台订阅不同类型的设备业务变更通知。

接口功能

支持第三方应用向物联网平台订阅设备的业务变更信息,当设备的状态、数据等信息发生变化时,平台会向第三方应用发送通知消息。

接口描述

1
SubscriptionDTO subDeviceData(SubDeviceDataInDTO sddInDTO, String ownerFlag, String accessToken) throws NorthApiException

参数说明

参数

必选/可选

类型

位置

描述

sddInDTO

必选

SubDeviceDataInDTO

body

见下表SubDeviceDataInDTO的描述。

ownerFlag

必选

String(256)

query

callbackUrl的所有者标识,不指定该标识可填写null。

  • ownerflag为false时,表示callbackUrl的owner是授权应用。
  • ownerflag为true时,表示callbackUrl的owner为被授权应用。

accessToken

必选

String

header

如果调用了定时刷新token接口,此参数值可以填写null,否则要填写鉴权接口获取的accessToken。

SubDeviceDataInDTO

参数

必选/可选

类型

位置

描述

notifyType

必选

String

body

通知类型,第三方应用可以根据通知类型对消息分别进行处理。

  • bindDevice(绑定设备,订阅后推送绑定设备通知)
  • deviceAdded(添加新设备,订阅后推送注册设备通知)
  • deviceInfoChanged(设备信息变化,订阅后推送设备信息变化通知)
  • deviceDataChanged(设备数据变化,订阅后推送设备数据变化通知)
  • deviceDatasChanged(设备数据批量变化,订阅后推送批量设备数据变化通知)
  • deviceDeleted(删除设备,订阅后推送删除设备通知)
  • messageConfirm(消息确认,订阅后推送设备消息确认通知)
  • commandRsp(命令响应,订阅后推送设备命令响应通知)
  • deviceEvent(设备事件,订阅后推送设备事件通知)
  • serviceInfoChanged(服务信息变化,订阅后推送设备服务信息变化通知)
  • deviceModelAdded(添加设备模型,订阅后推送增加设备模型通知)
  • deviceModelDeleted(删除设备模型,订阅后推送删除设备模型通知)
  • deviceDesiredPropertiesModifyStatusChanged(设备影子状态变更,订阅后推送设备影子状态变更通知)

callbackUrl

必选

String(1024)

body

订阅的回调地址,用于接收对应类型的通知消息。

必须使用HTTPS信道回调地址,同时回调地址中必须指定回调地址的端口。例如:https://XXX.XXX.XXX.XXX:443/callbackurltest

说明:

HTTP信道只可用于调测。

appId

可选

String(256)

body

设备或者规则等订阅内容主体所属的appId。

channel

可选

String(32)

Body

传输通道,若是MQTT客户端订阅,则取值为MQTT,其他情况为HTTP。

响应参数

SubscriptionDTO

参数

类型

描述

subscriptionId

String

订阅ID号,用于标识一个订阅。

notifyType

String

通知的类型。

callbackUrl

String

订阅的回调地址。

clientIds

List<String>

MQTT客户端ID,只有MQTT订阅时该字段有返回值。

错误码

Http状态码

错误码

错误描述

说明

400

100222

The request callbackurl is illegal.

回调地址非法。

处理建议:请检查请求体中的回调地址是否有误。

403

100217

The application hasn't been authorized.

应用未被授权。

处理建议:若非应用授权场景,请确认请求参数中的appId为空。

403

1010009

app throttle exceed.

应用调用接口过于频繁,超过流控值(默认值是100次/60s)。

处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。

403

1010005

App_key or access_token is invalid.

错误的token信息。

处理建议:请检查接口请求中所携带的accessToken是否有误。

409

100227

The resource is conflicted.

资源冲突,通知类型已经被订阅。

处理建议:请检查要订阅的通知类型是否已被订阅。