目前官方给的token2.0下载好像有问题,但是我们可以根据官方给的各种编程语言提供的算法来自己生成token。
例如使用官方给的python代码:
import base64
import hmac
import time
from urllib.parse import quote
def token(user_id,access_key):
version = '2022-05-01'
res = 'userid/%s' % user_id
# 用户自定义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__':
user_id = '37715'
access_key = 'mjgvkTCYTBF6DguxMmm+aV9EkDp2CYfL5jzRTph5Th6KhU8gqZz/cBivPTA7tfY5'
print(token(user_id,access_key))
注意!et = str(int(time.time()) + 3600)这个时间戳一小时就会失效,可改为et = str(1908654593)
user_id和access_key分别为自己的以下信息
微信小程序获取数据
url: 'https://iot-api.heclouds.com/thingmodel/query-device-property?product_id=自己的设备号&device_name=自己的设备名',
"authorization": "生成的安全鉴权"
更多编程语言的token算法和更专业指导见官方文档。