调用该接口在指定产品下批量自定义设备名称。物联网平台会检查名称的合法性。
使用说明
批量注册设备有两种方式:
- 由系统随机生成设备名称:请调用BatchRegisterDevice接口。
-
自定义设备名称:需本接口与BatchRegisterDeviceWithApplyId等接口结合实现。请按以下流程操作:
1. 调用本接口,传入要批量注册的设备的名称。物联网平台检查您提交的设备名称符合要求后,返回申请批次ID(ApplyId)。ApplyId将用于设备名称校验结果查询、批量设备注册和设备信息查询。
2. 调用QueryBatchRegisterDeviceStatus接口,根据申请批次ID,查看名称校验结果。请确保自定义设备名称全部校验通过,再执行后续操作完成设备注册。
说明 如果有校验失败的设备名称,请根据错误信息提示进行修正,然后重新调用BatchCheckDeviceNames接口获取新的申请批次ID(ApplyId)后,再次调用QueryBatchRegisterDeviceStatus接口确认全部设备名称校验通过。3. 调用BatchRegisterDeviceWithApplyId接口批量注册设备。本接口调用返回的成功结果,仅表示批量注册的申请已经提交成功。实际的注册会有一个过程。
4. (可选)调用QueryBatchRegisterDeviceStatus查看设备注册结果。
5. 调用QueryPageByApplyId查看批量注册的设备信息。
使用限制
单次调用本接口,最多能定义10,000 个设备名称。但对于使用X.509证书认证的设备,最多只能定义1,000个设备名称。
QPS限制
单个阿里云账号调用该接口的每秒请求数(QPS)最大限制为10。
调试
您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。
请求参数
名称 |
类型 |
是否必选 |
示例值 |
描述 |
Action | String | 是 | BatchCheckDeviceNames | 系统规定参数。取值:BatchCheckDeviceNames。 |
ProductKey | String | 是 | a1BwAGV**** | 要注册的设备所属的产品ProductKey。 |
IotInstanceId | String | 否 | iot-cn-0pp1n8t**** | 实例ID。您可在物联网平台控制台的实例概览页面,查看当前实例的ID。 重要
实例的更多信息,请参见实例概述。 |
DeviceName.N | RepeatList | 否 | light | 要注册的设备名称。设备名称在产品内具有唯一性。支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句点(.)和英文冒号(:),长度限制为4~32个字符。 该参数与DeviceNameList.N.DeviceName必须传入一种。若您同时传入该参数与DeviceNameList.N.DeviceName,则以DeviceNameList.N.DeviceName为准。 说明 单次调用,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。 |
DeviceNameList.N.DeviceName | String | 否 | light1 | 要注册的设备名称。设备名称在产品内具有唯一性。支持英文字母、数字、短划线(-)、下划线(_)、at(@)、英文句点(.)和英文冒号(:),长度限制为4~32个字符。 该参数与DeviceName.N必须传入一种。若您同时传入该参数与DeviceName.N,则以该参数为准。 说明 单次调用,最多能传入10,000个设备名称。超过该限制的数据会被丢弃。 |
DeviceNameList.N.DeviceNickname | String | 否 | 智能灯1 | 要注册的设备的备注名称。支持中文、英文字母、日文、数字和下划线(_),备注名称长度为4~64个字符,一个中文或日文占2个字符。 重要 若传入该参数,则必须同时传入DeviceNameList.N.DeviceName。
|
调用API时,除了本文介绍的该API的特有请求参数,还需传入公共请求参数。公共请求参数说明,请参见公共参数文档。
返回数据
名称 |
类型 |
示例值 |
描述 |
Code | String | iot.system.SystemException | 调用失败时,返回的错误码。更多信息,请参见错误码。 |
Data | Struct | 返回的数据。 |
|
ApplyId | Long | 1295006 | 调用成功时,系统返回的申请批次ID。使用该ApplyId,调用BatchRegisterDeviceWithApplyId接口来批量创建设备。 |
InvalidDetailList | Array of InvalidDetailList | 注册设备名称失败时,不合法设备名称列表的详细信息。 |
|
InvalidDetailList | |||
DeviceName | String | light | 设备名称。 |
ErrorMsg | String | The device name is illegal. | 注册设备名称失败时,返回的出错信息。 说明 多个出错信息间使用竖线(|)隔开。 |
NickName | String | 智能灯-1 | 设备的备注名称。 |
InvalidDeviceNameList | List | { "InvalidDeviceName": [ "APT$", "aw" ] } | 注册设备名称失败时,返回的不合法设备名称列表。 |
InvalidDeviceNicknameList | List | { "InvalidDeviceNickname": [ "APT$", "aw" ] } | 注册设备名称失败时,返回的不合法设备备注名称列表。 |
RepeatedDeviceNameList | List | { "RepeatedDeviceName": [ "APT$", "aw" ] } | 注册设备名称失败时,返回的重复设备名称列表。 |
ErrorMessage | String | 系统异常 | 调用失败时,返回的出错信息。 |
RequestId | String | E55E50B7-40EE-4B6B-8BBE-D3ED55CCF565 | 阿里云为该请求生成的唯一标识符。 |
Success | Boolean | true | 是否调用成功。
|
示例
请求示例
https://iot.cn-shanghai.aliyuncs.com/?Action=BatchCheckDeviceNames
&productKey=a1BwAGV****
&DeviceNameList.1.DeviceName=light1
&DeviceNameList.2.DeviceName=light2
&DeviceNameList.3.DeviceName=light3
&DeviceNameList.3.DeviceNickname=智能灯3
&<公共请求参数>
正常返回示例
XML
格式
<BatchCheckDeviceNamesResponse>
<Data>
<ApplyId>1234567</ApplyId>
</Data>
<RequestId>E976E36B-6874-4FA4-8BC0-55F9BEC5E2EF</RequestId>
<Success>true</Success>
</BatchCheckDeviceNamesResponse>
JSON
格式
{
"Data": {
"ApplyId": 1234567
},
"RequestId": "E976E36B-6874-4FA4-8BC0-55F9BEC5E2EF",
"Success": true
}