创建订阅
接口说明
应用服务器可调用此接口订阅物联网平台资源的变化事件,当资源发生变化时(如设备激活,设备数据更新等),平台会向应用服务器发送通知消息。
URI
请求方法 |
POST |
---|---|
URI |
/v5/iot/{project_id}/subscriptions |
传输协议 |
HTTPS |
请求参数
名称 |
必选/可选 |
类型 |
位置 |
说明 |
---|---|---|---|---|
X-Auth-Token |
必选 |
String |
Header |
用户Token。通过调用IAM服务 获取IAM用户Token接口获取,接口返回的响应消息头中“X-Subject-Token”就是需要获取的用户Token。简要的获取方法样例请参见 Token认证。 |
Instance-Id |
可选 |
String |
Header |
实例ID。物理多租下各实例的唯一标识,一般华为云租户无需携带该参数,仅在物理多租场景下从管理面访问API时需要携带该参数。 |
project_id |
必选 |
String |
Path |
项目ID。获取方法请参见 获取项目ID。 |
subject |
必选 |
Subject Object |
Body |
订阅的主题信息,即订阅的资源变化事件。 |
callbackurl |
必选 |
String |
Body |
订阅的回调地址,用于接收对应资源事件的通知消息,例如:https://host:port/callbackurltest。 |
app_id |
可选 |
String |
Body |
资源空间ID。此参数为非必选参数,存在多资源空间的用户需要使用该接口时,建议携带该参数指定订阅哪个资源空间下的消息通知,否则订阅的消息通知将会归属到默认资源空间下。 |
channel |
必选 |
String |
Body |
物联网平台推送通知消息时使用的协议通道。使用“http”填充,表示该订阅推送协议通道为http(s)协议。 |
名称 |
必选/可选 |
类型 |
说明 |
---|---|---|---|
resource |
必选 |
String |
订阅的资源名称。
|
event |
必选 |
String |
订阅的资源事件,取值范围:activate、update、up。 event需要与resource关联使用,具体的“resource:event”映射关系如下:
|
响应参数
名称 |
类型 |
说明 |
---|---|---|
subscription_id |
String |
订阅ID,用于唯一标识一个订阅,在创建订阅时由物联网平台分配获得。 |
subject |
Subject Object |
订阅的主题信息,即订阅的资源变化事件。 |
callbackurl |
String |
订阅的回调地址,用于接收对应资源事件的通知消息。 |
channel |
String |
物联网平台推送通知消息时使用的协议通道。使用“http”填充,表示该订阅推送协议通道为http(s)协议。 |
名称 |
类型 |
说明 |
---|---|---|
resource |
String |
订阅的资源名称。
|
event |
String |
订阅的资源事件,取值范围:activate、update、up。 event需要与resource关联使用,具体的“resource:event”映射关系如下:
|
请求示例
POST https://{Endpoint}/v5/iot/{project_id}/subscriptions Content-Type: application/json X-Auth-Token: ******** Instance-Id: ******** { "subject" : { "resource" : "device", "event" : "activate" }, "callbackurl" : "https://host:port/deviceActivate", "app_id" : "string", "channel" : "http" }
响应示例
Status Code: 201 Created
Content-Type: application/json { "subscription_id" : "5bcaddda-75bf-4623-8c8d-26175c41fcca", "subject" : { "resource" : "device", "event" : "activate" }, "callbackurl" : "https://host:port/deviceActivate", "channel" : "http" }
错误码
HTTP状态码 |
错误码 |
错误码英文描述 |
错误码中文描述 |
处理建议 |
---|---|---|---|---|
400 |
IOTDA.009002 |
The resource model does not exist. |
资源模型不存在 |
请确认请求参数中是否携带resource和event,或者notifyType。 |
IOTDA.009005 |
The request callbackurl is invalid. |
请求中的callbackurl地址不合法 |
请排查请求中的callbackurl参数是否符合华为云文档要求。 |
|
IOTDA.009006 |
The subscription subject already exists. |
该订阅记录已经存在 |
该订阅已存在,无需再重复订阅。 |
|
IOTDA.009007 |
The request channel is invalid. |
请求中channel参数不合法 |
请排查请求中的channel参数是否符合华为云文档要求。 |
|
IOTDA.009010 |
The resource does not match event. |
resource和event不匹配 |
请排查请求中resource与event参数是否符合华为云文档要求 |
|
403 |
IOTDA.001000 |
The application does not exist. |
该应用不存在 |
请确定是否已在平台注册应用并检查应用ID是否正确。 |
IOTDA.001002 |
Operation not allowed. The application has not been authorized. |
该应用没有权限访问 |
请检查该应用是否已被授权。 |
|
IOTDA.001005 |
Operation not allowed. The parameter 'app_id' is not carried, and the authorized user has more than one applications. Include the parameter 'app_id', or contact Huawei technical support engineers to merge application data. |
该用户下有多个应用的情况下未携带appId访问接口 |
请携带对应的appId或联系华为工程师合并应用数据。 |
|
IOTDA.001006 |
Operation not allowed. Application not found by authorized user or the authorized user has no application. |
用户下没有应用或应用与用户不匹配 |
请排查用户下是否有应用或是否有指定的应用。 |
|
IOTDA.001007 |
Operation not allowed. The application does not belong to the authorized user. |
应用与用户信息不匹配 |
请排查该用户下是否有指定的应用。 |
|
IOTDA.009001 |
The count of subscription subject exceeds the limit. |
应用订阅记录数达到上限。 |
请删除多余订阅记录,该应用订阅数量已达到上线。 |
|
IOTDA.009008 |
The query count exceeds the upper limit. |
查询数量超过最大限制 |
请排查请求参数是否符合华为云文档要求。 |
|
500 |
IOTDA.000001 |
Internal server error. |
服务器内部错误 |
请联系华为工程师分析解决。 |
IOTDA.000020 |
Decrypt IAM token failed. |
IAM Token解析失败 |
请联系华为工程师分析解决。 |