本来一直HOOK的华为运动健康的,无奈最近似乎出了点问题,遂退回了春雨计步器。
但这就有点问题,一是微信步数似乎没法与手机步数实时同步;二是有时会同步到昨天的历史步数。这就很烦。
现在尝试解决一下这些问题。
思考
- 接上篇文章,如果关注某个第三方公众号,那么计步数据是这么个路线:
- 手机计步 –> 步数上传第三方服务器 –> 步数到达微信服务器
- 好吧,因为目的并不单纯,我平时是不会打开计步app的。当前并不知道的地方有两个:
- 第三方计步app基于什么逻辑才会将数据上传给第三方服务器
- 微信步数无法与手机步数实时同步是不是因为手机端步数没上传?
- 第三方服务器是基于什么逻辑回应微信步数的拉取请求
- 有时莫名其妙就同步了昨天的步数就很烦了
(要是今天没超过这个成绩,两天一模一样岂不是很囧,被迫增加运动量哈哈。 - 或许应该考虑先取关公众号,即需即用?
- 有时莫名其妙就同步了昨天的步数就很烦了
- 第三方计步app基于什么逻辑才会将数据上传给第三方服务器
某些尝试
- 尝试监听了一下,果然是HTTP请求,没带S不出所料
- 一个登录GET请求,cookie没变,但刷新了有效时长
GET http://steps.chunyuyisheng.com/api/pedometer/contest_start/?union_id=&nickname=&figure=&app=7&platform=android&systemVer=&version=2.5.4&app_ver=2.5.4&imei=&device_id=&mac=&secureId=&installId=&phoneType=&vendor=zhihuiyun&u= HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Host: steps.chunyuyisheng.com
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: sessionid=
User-Agent: okhttp/2.2.0
HTTP/1.1 200 OK
Server: nginx
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
Vary: Cookie
Set-Cookie: sessionid=; expires=; httponly; Max-Age=1209600; Path=/
{"succeed": true, "err_msg": "", "result": {"account": {"nick_name": "", "latest_medal": "STEP10000", "figure": "", "union_id": ""}, "friends": [], "badge_num": 0}}
- 一个步数上传POST请求
POST http://steps.chunyuyisheng.com/robot/p/upload_steps_data/?app=7&platform=android&systemVer=&version=2.5.4&app_ver=2.5.4&imei=&device_id=&mac=&secureId=&installId=&phoneType=&vendor=zhihuiyun&u= HTTP/1.1
Content-Type: application/x-www-form-urlencoded; charset=utf-8
Host: steps.chunyuyisheng.com
Connection: Keep-Alive
Accept-Encoding: gzip
Cookie: sessionid=
User-Agent: okhttp/2.2.0
steps_data=%5B%7B%22time%22%3A%222018-11-11+10%3A13%3A06%22%2C%22steps%22%3A666%7D%5D
// 以上的post 数据做了些urlEncode处理
steps_data=[{\"time\":\"2018-11-11+10:13:06\",\"steps\":666}]
HTTP/1.1 200 OK
Server: nginx
Content-Type: application/json; charset=UTF-8
Connection: keep-alive
Vary: Cookie
{"err_msg": "", "success": true}
闲话
现在直接 步数上传第三方服务器 –> 步数到达微信服务器。最近先看看效果吧。
经测试木有问题。