注册设备(密码方式)
典型场景
在设备接入物联网平台前,应用服务器需要调用此接口在物联网平台注册设备,获取设备ID和密码。在设备接入物联网平台时携带设备ID和密码,完成设备的接入认证。
此注册设备接口适用于使用MQTT协议接入的设备。
接口功能
支持应用服务器在物联网平台注册设备,完成注册后设备方可接入物联网平台。
接口原型
请求方法 |
POST |
---|---|
请求地址 |
https://server:port/iocm/app/reg/v2.0.0/deviceCredentials?appId={appId} |
传输协议 |
HTTPS |
请求参数
参数 |
必选/可选 |
类型 |
位置 |
描述 |
---|---|---|---|---|
app_key |
必选 |
String |
header |
访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。 |
Authorization |
必选 |
String |
header |
访问物联网平台的认证信息,值为“Bearer {accessToken}”,其中{accessToken}为调用鉴权接口返回的accessToken。 |
appId |
可选 |
String |
query |
访问物联网平台的应用ID,在物联网平台创建应用时由平台分配获得。此处填写授权应用的appId。 |
deviceInfo |
可选 |
Body |
设备信息。 |
|
endUserId |
可选 |
String(256) |
Body |
终端用户ID。 在NB-IoT方案中,endUserId设置为设备的IMSI号。 |
organization |
可选 |
String(256) |
Body |
设备所属的组织信息。 |
region |
可选 |
String(256) |
Body |
设备所在的区域信息。 |
timezone |
可选 |
String(256) |
Body |
设备所在的时区信息。 |
mqttConnect |
可选 |
Boolean |
Body |
设备是否使用MQTT协议接入,注册MQTT协议接入设备时需要设置为true。 |
productId |
可选 |
String(256) |
Body |
设备所属的产品ID,用于关联设备所属的产品模型。与manufacturerId、manufacturerName、deviceType、model和protocolType系列参数二选一。 |
secret |
可选 |
String |
Body |
设备密码,若在请求中指定secret,则响应中返回请求中指定的secret;若请求中不指定secret,则由物联网平台自动生成。 |
参数 |
必选/可选 |
类型 |
位置 |
描述 |
---|---|---|---|---|
nodeId |
必选 |
String(256) |
Body |
设备唯一标识码,必须与设备上报的设备标识一致。通常使用MAC地址,Serial No或IMEI作为nodeId。
说明:
使用IMEI作为nodeId时,根据不同厂家的芯片有不同填写要求。
|
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和model参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
protocolType |
可选 |
String(256) |
Body |
设备使用的协议类型,当前支持的协议类型:MQTT。 与manufacturerId、manufacturerName、deviceType和model参数一起用于关联设备所属的产品模型,与productId参数二选一。 |
name |
可选 |
String |
Body |
设备名称。 |
响应参数
Status Code: 200 OK
参数 |
类型 |
描述 |
---|---|---|
deviceId |
String(256) |
设备ID,用于唯一标识一个设备,在注册设备时由物联网平台分配获得。 |
psk |
String(32) |
随机psk参数,由物联网平台自动生成。 |
secret |
String(256) |
设备密码,设备可以通过验证码完成物联网平台的接入认证。若在请求中指定secret,则响应中返回请求中指定的secret;若请求中不指定secret,则由物联网平台自动生成。 |
请求示例
Method: POST request: https://server:port/iocm/app/reg/v2.0.0/deviceCredentials?appId=********* Header: app_key: ****** Authorization: Bearer ****** Content-Type: application/json Body: { "deviceInfo": { "nodeId": "******", "manufacturerName": "******", "manufacturerId": "******", "deviceType": "******", "model": "******", "protocolType": "******", "name": "******" }, "endUserId": "***********", "organization": "***********", "region": "***********", "timezone": "***********", "mqttConnect": true, "productId": "***********", "secret": "***********" }
响应示例
response: Status Code: 200 OK Content-Type: application/json Body: { "deviceId": "*******", "psk": "*********", "secret": "*********" }
错误码
Http状态码 |
错误码 |
错误描述 |
说明 |
---|---|---|---|
400 |
100007 |
Bad request message. |
参数不合法。 处理建议:deviceId未赋值,请参考请求参数说明填写请求。 |
400 |
100426 |
The nodeId is duplicated. |
nodeId重复。 处理建议:请检查接口请求中nodeId是否有误。 |
400 |
50400 |
The input is invalid. |
输入参数无效。 处理建议:请检查接口调用请求中携带参数的合法性。 |
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 |
App_key or access_token is invalid. |
错误的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 |
103026 |
The license is not exist. |
License不存在。 处理建议:物联网平台内部License问题,请联系物联网平台维护人员处理。 |
500 |
50252 |
Internal server error. |
服务器运行内部错误。 处理建议:物联网平台内部错误,请联系物联网平台维护人员处理。 |