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

订阅平台业务数据

典型场景

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

接口功能

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

接口原型

请求方法

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的所有者标识。

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

appId

可选

String(256)

body

访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。此处填写授权应用的appId。

notifyType

必选

String

body

通知类型,应用可以根据通知类型接收物联网平台推送的对应通知消息。

  • deviceAdded(添加新设备,订阅后推送注册设备通知)
  • bindDevice(绑定设备,订阅后推送绑定设备通知)
  • deviceInfoChanged(设备信息变化,订阅后推送设备信息变化通知)
  • deviceDataChanged(设备数据变化,订阅后推送设备数据变化通知)
  • deviceDatasChanged(设备数据批量变化,订阅后推送批量设备数据变化通知)
  • deviceCapabilitiesChanged(设备服务能力变化,订阅后推送设备服务能力变化通知)
  • deviceCapabilitiesAdded(设备服务能力增加,订阅后推送设备服务能力增加通知)
  • deviceCapabilitiesDeleted(设备服务能力删除,订阅后推送设备服务能力删除通知)
  • deviceDeleted(删除设备,订阅后推送删除设备通知)
  • messageConfirm(消息确认,订阅后推送设备消息确认通知。仅适用于使用MQTT协议接入的设备。)
  • commandRsp(命令响应,订阅后推送设备命令响应通知。仅适用于使用MQTT协议接入的设备。)
  • ruleEvent(规则事件,订阅后推送规则事件通知)
  • deviceDesiredPropertiesModifyStatusChanged(设备影子状态变更,订阅后推送设备影子状态变更通知)

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.

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

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