OneNet中小程序Authorization的生成,以实现api数据获取MQTT数据

        最近在实现esp32收集数据通过MQTT上报数据,小程序获取ONENET数据并在实现小程序调用API接口获取数据下卡壳很久,终于弄出来记录一下。

刚开始一直报错: (来自ONENET文档中心OneNET - 中国移动物联网开放平台

后来阅读文档发现并不是直接在headert添加api-key,原因是

因为进行了token算法加密,从而发送的请求header从原来的 api-key变成 Authorization,而则是由res,et,key,method组成,接下来详细介绍这四个参数,以及生成的Authorization

res:products/586xxx/devices/106253xxxx

其中api.heclouds.com是ONENET的API服务地址,586xxx是你的产品ID,106253xxxx是你的设备ID

et:1711698292

是时间戳,建议时间要往后,避免失效,这个是时间戳转换工具网址https://tool.lu/timestamp/

 

 key:xxxxxxxxHPDmyOaWahZtWullKy0QEDv2NN6vcVgw=

这个是access_key,每个用户设备都有唯一的key

method:sha1是签名方法

然后通过ONENET官方提供的工具进行计算出Authorization(链接https://open.iot.10086.cn/doc/mqtt/images/tools/token.exe

终于得到啦

Authorization:version=2018-10-31&res=products%xxxxx452&et=xxxxxxxx92&method=sha1&signxxxxxxxxxxxxV%2FsGa4mUInArPSTI%3D

然后将header里面原来的api-key的替换Authorization成就可以获取ONENET物联网平台的数据了 

API调试工具在线网站:Apipost-基于协作,不止于API文档、调试、Mock、自动化测试

部分核心代码:

wx.request({
        url:"http://api.heclouds.com/devices/"+ deviceid +"/datastreams?datastream_id",
        //设备ID
        //api-key
        header:{
            //'content-type': 'application/x-www-form-urlencoded',
            "Authorization":apiID
        },
        data:{
            limit:1
        },
        method :"GET",
        success: function (res) {
            console.log(res)
            wx.showToast({
              title: '连接成功',
              icon:  'success',
              mask:     true
            })
            console.log("data is ", res.data)
            // 进行数据处理
            that.setData({
                //tem_value:res.data.data.datastreams[0].datapoints[0].value, 
            })
            },
        fail: function (res) {
        console.error('连接 MQTT 服务器失败')
        // 进行错误处理
        }
      })

  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值