# 导入 IoT 账号
# 简介
IoT 账号是指机械设备上的通用唯一识别码(UID)。在 Cat.1 设备的通话功能集成过程中,您需要用到这些 UID 作为参数传递给接口函数。
本文将指导您将 UID 导入到菊风后台。您可以在两种导入方式中任选一种:
# 前提条件
确保已经联系菊风开启自助导入 IoT 账号的权限。
# 通过接口导入
# 准备参数
在通过接口导入账号的过程中,您会用到两个参数:域 ID
和 原始AppId
。这两个参数需要在 IoT 控制台获取。
登录菊风云 IoT 控制台后,访问 基本信息 (opens new window) 获取原始
域 ID
。访问 服务管理 (opens new window) - 操作 - 应用管理。在安全信息一栏中获取原始
AppID
。
# 请求地址
导入 IOT 账号的请求地址格式为:https://developer.juphoon.com/cloud_api/cn/message/?c=PIOTserverapi&a=P_import_iotdata_api&domainId=<处理后的域ID>&appId=<处理后的应用ID>&time=<当前时间>&sant=<盐值>&token=<校验token>
。
在地址中需要填入五个参数:
参数 | 类型 | 说明 |
---|---|---|
domainId | string | 原始域 ID 经过 特殊算法 后得到的字符串 |
appId | string | 控制台中的原始 AppID 经过 特殊算法 后得到的字符串 |
time | int | 访问接口的Unix 时间戳,例如:1616728059。前后三分钟内有效 |
sant | int | 盐值,用于 特殊算法 的参数,需要使用 1-8 中的任意整数 |
token | string | 根据指定算法生成的校验 token。 |
其中有部分参数需要通过 特殊算法 计算得到,该算法为:将原始数值 value
左移对应盐值 sant
的位数,然后进行 base64 加密。以 php 代码为例:
domainId = base64_encode(domainIdvalue << sant);
appid = base64_encode(appIdvalue << sant);
在 准备参数 章节您应该已经获取了 原始域 ID 和 原始 AppID。例如在 sant
取 3 的情况下:
原始域ID,103684 在经过上述算法处理后,得出 domianId 应等于 ODI5NDcy;
原始AppID,17 在经过上述算法处理后,得出 appid 应等于 MTM2;
time
参数为当前的 Unix 时间戳,您可以在 这里 (opens new window) 获取当前 Unix 时间戳,并且了解到不同编程语言生成 Unix 时间的方式。
token
参数的生成算法为:将 原始的域ID数值
、原始的 AppID 数值
、AppKey
、密钥
、time
按序连接,然后进行 MD5 加密(32位小写)。下面是生成 token
的伪代码:
domainIdvalue = 10xxx7;
appIdvalue = 1;
appkey = f9c7bxxxxxxx6753a234409c;
密钥 = f1H5xxxxxxxxI76p4;
time = 1596595533;
token = MD5(10xxx71f9c7bxxxxxxx6753a234409cf1H5xxxxxxxxI76p41596595533);
# 请求数据
向接口地址发送 post 请求,请求数据格式需要满足以下条件:以 data
为键,以 uid 数组
为值。
{"data":["portal001","portal002","portal003","portal004"]}
# 请求结果
在发送请求成功后会收到返回值:
参数 | 类型 | 说明 |
---|---|---|
code | boolean | true为接口调用成功,false则为失败 |
message | string | 接口调用失败时返回该字段 |
exists_dev | 重复导入的设备数据数组 | |
error_dev | 导入错误的设备数据数组 |
# 通过控制台导入
登录菊风云 IoT 控制台。
访问 服务管理 (opens new window) - 操作 - 账号导入 ,点击导入 打开导入弹框。
打开弹框后,点击 csv 模板说明及下载。
下载 csv 模板,并按照要求修改模板文件后上传 csv 文件即可导入账号。