订阅平台业务数据
典型场景
第三方应用可在物联网平台订阅设备相关的业务数据,当物联网平台中设备的业务信息发生变化时(如设备注册、设备数据上报、设备状态变更等),平台会向第三方应用发送通知消息,通知其具体的变化信息。第三方应用可以调用此接口向物联网平台订阅不同类型的设备业务变更通知。
接口功能
支持第三方应用向物联网平台订阅设备的业务变更信息,当设备的状态、数据等信息发生变化时,平台会向第三方应用发送通知消息。
接口描述
1 |
SubscriptionDTO subDeviceData(SubDeviceDataInDTO sddInDTO, String ownerFlag, String accessToken) throws NorthApiException
|
参数说明
参数 |
必选/可选 |
类型 |
位置 |
描述 |
---|---|---|---|---|
sddInDTO |
必选 |
SubDeviceDataInDTO |
body |
见下表SubDeviceDataInDTO的描述。 |
ownerFlag |
必选 |
String(256) |
query |
callbackUrl的所有者标识,不指定该标识可填写null。
|
accessToken |
必选 |
String |
header |
SubDeviceDataInDTO
参数 |
必选/可选 |
类型 |
位置 |
描述 |
---|---|---|---|---|
notifyType |
必选 |
String |
body |
通知类型,第三方应用可以根据通知类型对消息分别进行处理。
|
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. |
资源冲突,通知类型已经被订阅。 处理建议:请检查要订阅的通知类型是否已被订阅。 |