API文档: https://open.iot.10086.cn/doc/iot_platform/book/api/introduce.html
一. 新版API调用格式:
https(http)://openapi.heclouds.com/{namespace}?action=xxxx&version=1
其中:
新版API分为设备管理类和应用开发类两大块, 文档如下:
设备管理类https://open.iot.10086.cn/doc/iot_platform/book/api/common/createDevice.html
应用开发类
https://open.iot.10086.cn/doc/iot_platform/book/api/application/queryStatistics.html
二. 新版token计算
新版token计算 参考文档:https://open.iot.10086.cn/doc/iot_platform/book/api/auth.html
下面的是python版本的计算方法, 修改里面的信息,运行一下就能得到新版token
import base64
import hmac
import time
from urllib.parse import quote
def token(userId,access_key):
version = '2020-05-29'
res = 'userid/%s' % userId
# 用户自定义token过期时间
et = str(int(time.time()) + 3600)
# 签名方法,支持md5、sha1、sha256
method = 'sha1'
# 对access_key进行decode
key = base64.b64decode(access_key)
# 计算sign
org = et + '\n' + method + '\n' + res + '\n' + version
sign_b = hmac.new(key=key, msg=org.encode(), digestmod=method)
sign = base64.b64encode(sign_b.digest()).decode()
# value 部分进行url编码,method/res/version值较为简单无需编码
sign = quote(sign, safe='')
res = quote(res, safe='')
# token参数拼接
token = 'version=%s&res=%s&et=%s&method=%s&sign=%s' % (version, res, et, method, sign)
return token
if __name__ == '__main__':
userId = '163120' #这里改成您自己的id
access_key = '0sWvXoPixxdrSDcKDeEHbgvNGPRV5luHWx3HjA1no84ZAYyG9GvlWJmUMaLm5nlExdVZq3ANuII3GM04/PZxxQ=='
#这里改成您自己的access key
print(token(userId,access_key))
while(1):
pass
具体操作是: 新建一个sign.py文件, 把上面的代码粘进去, 把用户id和accesskey替换成你自己的, 然后保存关闭, 再双击运行.
关于用户id和access key 用以下方法找到
此外,
et = str(int(time.time()) + 3600)
说明我们的token只在1小时内有效, 调试过程中注意更新token, 或者把有效时间设长一点.
三. 打开postman尝试调用一个API(以查询设备详情为例)
现在打开postman, 我们可以开始调试API了
查询设备详情API:https://open.iot.10086.cn/doc/iot_platform/book/api/common/queryDeviceDetail.html
首先, 这是一个GET请求, 所以,我们应该设置好基地址和get方法
然后,我们应该写入之前算好的token进行设备鉴权
然后, 根据API请求方法设置get的参数.
根据新版API调用格式, action 和 version是必须的
本例中 action是QueryDeviceDetail
然后, 我们就收到了服务器的回复了!!
至此, 第一个API调用完成.
接下来, 我们将熟悉所有设备和应用API