小程序获取与解密微信步数-可以获取当日数据
2017-05-23 本文已影响1310人
道友试试重启
近期,微信小程序官方再次更新,然而其它我先不管。
“wx.getWeRunData 获取微信运动数据”,这个接口着实有用,因为公司正好要做一个与微信步数相关的抽奖活动。
唯一的疑问是,官方文档上说的是能获取到过去30天的数据,那么当天的数据是否能得到?先不吐槽文档描述有歧义吧,只能自己测一下了(本次测试重点是能否获取当天运动数据,有的操作会一笔带过)。
先看下文档说明:

然后下面是解密后的结构:

看完文档,开始测试。看代码:

数据请求成功,看一下被加密过的运动数据:

进行到这一步,离真相只差一步之遥,进行解密:

可以看到上图的最后一个时间节点,“1495468800“”转码后是今天“”5月23“”,我的步数可以得到!
关于时间戳:所有的时间戳转日期后都是显示的某天的00:00:00,如:2008/8/8 00:00:00;包括最后的,也就是我今天的时间戳转码后:2017/5/23 00:00:00(不管在23号一天中的哪一个时间段获取,都是这样的格式)。
而在watermark下的时间戳则是接口请求的时间。
注意(当然只是我自己遇到的,仅做参考):
有一个问题,这个小程序获取的步数跟微信运动里的步数会有延迟(当然微信运动本身的延迟先不说,现在只研究微信运动里看到的数据与小程序获取步数接口的数据)。
会有一个这样的情况,如果用户没进去微信运动,直接请求小程序获取步数接口,是会停留在上次数据不会变的!过很长一段时间后再次请求,数据才会重新获取。
经过测试,先进入微信运动然后再请求小程序获取步数,那么这个时候数据是一致的,也就是说,相当于用户要进去微信运动里将步数提交到数据库?然后小程序获取步数接口才能拿到最新的?否则就要等微信运动自己的数据更新....