注册设备(验证码方式)
接口说明
在设备接入物联网平台前,应用服务器需要调用此接口在物联网平台注册设备,并设置设备的唯一标识(如IMEI)。在设备接入物联网平台时携带设备唯一标识,完成设备的接入认证。
此注册设备接口适用于使用LWM2M/CoAP协议接入的设备,或者集成了AgentLite SDK的设备。
URI
| 请求方法 | POST |
|---|---|
| URI | /iocm/app/reg/v1.1.0/deviceCredentials |
| 传输协议 | HTTPS |
请求参数
| 参数 | 必选/可选 | 类型 | 位置 | 描述 |
|---|---|---|---|---|
| app_key | 必选 | String | header | 访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
| Authorization | 必选 | String | header | 访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
| appId | 可选 | String | query | 设备所属的应用ID,当注册授权应用下的设备时才需要填写。 |
| deviceInfo | 可选 | Body | 设备信息。 | |
| endUserId | 可选 | String(256) | Body | 终端用户ID。 在NB-IoT方案中,endUserId设置为设备的IMSI号。 |
| imsi | 可选 | String(1-64) | Body | NB-IoT终端的IMSI。 |
| isSecure | 可选 | Boolean | Body | 指定设备是否为安全设备,默认值为false。在NB-IoT场景下,注册的设备为加密设备时,isSecure要设置为true。
|
| nodeId | 必选 | String(256) | Body | 设备唯一标识码,必须与设备上报的设备标识一致。通常使用IMEI、MAC地址或Serial No作为nodeId。 使用IMEI作为nodeId时,根据不同厂家的芯片有不同填写要求。
|
| psk | 可选 | String(8-32) | Body | 请求中指定psk,则平台使用指定的psk;请求中不指定psk,则由平台生成psk。取值范围是a-f、A-F、0-9组成的字符串。 |
| timeout | 可选 | Integer(>=0) | Body | 设备验证码的超时时间,单位:秒。若设备在有效时间内未接入物联网平台并激活,则平台会删除该设备的注册信息。 取值范围:0~2147483647。若填写为“0”,则表示设备验证码不会失效(建议填写为“0”)。 默认值:0(默认值可配置,具体配置值请咨询物联网平台运维人员) |
| verifyCode | 可选 | String(256) | body | 设备验证码,全局唯一,建议与nodeId设置成相同值。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。 在注册集成了Agent Lite SDK的设备时需要设置verifyCode,且必须与nodeId设置成相同值。 |
| productId | 可选 | String(256) | Body | 设备所属的产品ID,用于关联设备所属的产品模型。与manufacturerId、manufacturerName、deviceType、model和protocolType系列参数二选一。 |
| deviceName | 可选 | String | Body | 设备名称。 |
| 参数 | 必选/可选 | 类型 | 位置 | 描述 |
|---|---|---|---|---|
| manufacturerId | 可选 | String(256) | Body | 厂商ID,唯一标识一个厂商。与manufacturerName、deviceType、model和protocolType参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
| manufacturerName | 可选 | String(256) | Body | 厂商名称。与manufacturerId、deviceType、model和protocolType参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
| deviceType | 可选 | String(256) | Body | 设备类型,大驼峰命名方式,如MultiSensor、ContactSensor、CameraGateway。 与manufacturerId、manufacturerName、model和protocolType参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
| model | 必选 | String(256) | Body | 设备的型号。与manufacturerId、manufacturerName、deviceType和protocolType参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
| protocolType | 可选 | String(256) | Body | 设备使用的协议类型,当前支持的协议类型:CoAP,LWM2M。 与manufacturerId、manufacturerName、deviceType和model参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
响应参数
Status Code: 200 OK
| 参数 | 类型 | 描述 |
|---|---|---|
| deviceId | String(256) | 设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
| psk | String(32) | 随机psk参数,若请求中携带了psk,则使用请求中的psk,否则由平台生成随机psk参数。 |
| timeout | Integer | 验证码有效时间,单位秒,设备需要在有效时间内接入物联网平台。 |
| verifyCode | String(256) | 设备验证码,集成了Agent Lite SDK的设备需要使用验证码完成物联网平台的接入认证。若在请求中指定verifyCode,则响应中返回请求中指定的verifyCode;若请求中不指定verifyCode,则由物联网平台自动生成。 |
请求示例
POST https://{host}:{port}/iocm/app/reg/v1.1.0/deviceCredentials?appId=*********
Content-Type: application/json
app_key: ******
Authorization: Bearer ******
{
"endUserId": "***********",
"verifyCode": "****************",
"nodeId": "****************",
"deviceInfo": {
"manufacturerName": "******",
"manufacturerId": "******",
"deviceType": "******",
"model": "******",
"protocolType": "******"
},
"deviceName": "******",
"psk": "********************************",
"timeout": 0
} 正常响应示例
Status Code: 200 OK
Content-Type: application/json
{
"deviceId": "*******",
"verifyCode": "*******",
"psk": "*********",
"timeout": 0
} 错误码
| Http状态码 | 错误码 | 错误描述 | 说明 |
|---|---|---|---|
| 200 | 103028 | The license pool resources. | License资源用尽。 |
| 400 | 100003 | Invalid verify code. | 验证码无效。 处理建议:请检查接口请求中的verifyCode是否有误。若请求参数中未带verifyCode,请联系物联网平台维护人员处理。 |
| 400 | 100007 | Bad request message. | 参数不合法。 处理建议:deviceId未赋值,请参考请求参数说明填写请求。 |
| 400 | 100416 | The device has already been binded. | 设备已经绑定。 处理建议:请检查设备是否已经注册。 |
| 400 | 100426 | The nodeId is duplicated. | nodeId重复。 处理建议:请检查接口请求中nodeId是否有误。 |
| 400 | 50400 | The input is invalid. | 输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 |
| 401 | 100025 | AppId for auth not exist. | 获取不到appId鉴权信息。 处理建议:
|
| 403 | 100203 | The application is not existed. | 应用不存在。 处理建议:
|
| 403 | 100217 | The application hasn't been authorized. | 应用未被授权。 处理建议:若非应用授权场景,请确认请求参数中的appId为空。 |
| 403 | 1010009 | app throttle exceed. | 应用调用接口过于频繁,超过流控值(默认值是100次/60s)。 处理建议:联系物联网平台维护人员调大流控阈值或者控制接口的调用频率。 |
| 403 | 1010005 | Invalid access token or appId. | 错误的token信息。 处理建议:请检查接口请求中所携带的accessToken是否有误。 |
| 403 | 600002 | The product not existed. | 产品不存在。 处理建议:物联网平台未找到productId对应的产品,请检查productId是否有误。 |
| 500 | 100001 | Internal server error. | 服务内部处理错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
| 500 | 100203 | The application is not existed. | 授权应用不存在。 处理建议:
|
| 500 | 100412 | The amount of device has reached the limit. | 当前应用下设备数量达到上限。 处理建议:请检查当前应用下的设备数量是否已达到所申请资源的上限。 |
| 500 | 100441 | The amount of nonSecure device has reached the limit. | 非安全设备数量已达到上限。 处理建议:
|
| 500 | 103026 | The license is not exist. | License不存在。 处理建议:物联网平台内部License问题,请联系物联网平台维护人员处理。 |
| 500 | 50252 | Internal server error. | 服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |
Last Article: 设备管理
Next Article: 注册设备(密码方式)
Did this article solve your problem?
Thank you for your score!Your feedback would help us improve the website.