订阅平台业务数据
典型场景
应用服务器可调用此接口在物联网平台订阅设备相关的业务信息,当物联网平台中设备的业务信息发生变化时(如设备注册、设备数据上报、设备状态变更等),平台会向应用服务器发送通知消息。
接口功能
支持应用服务器向物联网平台订阅设备的业务变更信息,当设备的状态、数据等信息发生变化时,平台会向应用服务器发送通知消息。
接口原型
请求方法 |
POST |
---|---|
请求地址 |
https://server:port/iocm/app/sub/v1.2.0/subscriptions?ownerFlag={ownerFlag} |
传输协议 |
HTTPS |
请求参数
参数 |
必选/可选 |
类型 |
位置 |
描述 |
---|---|---|---|---|
app_key |
必选 |
String |
header |
访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
Authorization |
必选 |
String |
header |
访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
ownerFlag |
可选 |
String(256) |
query |
callbackUrl的所有者标识。
|
appId |
可选 |
String(256) |
body |
访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。此处填写授权应用的appId。 |
notifyType |
必选 |
String |
body |
通知类型,应用可以根据通知类型接收物联网平台推送的对应通知消息。
|
callbackUrl |
必选 |
String(1024) |
body |
订阅的回调地址,用于接收对应类型的通知消息。 可使用HTTPS或HTTP回调地址,建议使用HTTPS。回调地址支持IP地址或域名格式,同时回调地址中必须指定回调地址的端口。例如:https://XXX.XXX.XXX.XXX:443/callbackurltest |
channel |
可选 |
String(32) |
Body |
传输通道,若是MQTT客户端订阅,则取值为MQTT,其他情况为HTTP。 |
响应参数
Status Code: 201 Created
参数 |
类型 |
描述 |
---|---|---|
subscriptionId |
String |
订阅ID,用于唯一标识一个订阅,在创建订阅时由物联网平台分配获得。 |
notifyType |
String |
通知的类型。 |
callbackUrl |
String |
订阅的回调地址。 |
clientIds |
List<String> |
MQTT客户端ID,只有MQTT订阅时该字段有返回值。 |
请求示例
Method: POST request: https://server:port/iocm/app/sub/v1.2.0/subscriptions Header: app_key: ****** Authorization: Bearer ***** Content-Type: application/json Body: { "appId": "*******", "notifyType": "deviceInfoChanged", "callbackUrl": "https://***********" }
响应示例
response: Status Code: 201 Created Content-Type: application/json Body: { "subscriptionId": "*******", "notifyType": "*******", "callbackUrl": "https://***********" }
错误码
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. |
资源冲突,通知类型已经被订阅。 处理建议:请检查要订阅的通知类型是否已被订阅。 |