arthurfsy 发表于 2022-11-14 16:36:53

【node-red】深圳儿童疫苗接种信息接入

本帖最后由 arthurfsy 于 2022-11-24 10:52 编辑

11.24更新:修改了oauth的请求头function,现在接种记录的时效比较长了,稳定性还在确认当中


UI展示


写在前面
这个插件主要方便宝宝在深圳地区出生的家长(比如我)随时查看已经接种的疫苗信息、待接种疫苗计划等信息,在了解总花费的同时,不错过娃的疫苗接种。
PS:小程序前端展示信息较少,并无金额、厂商等信息,但是后台是有以上数据的,本NR流进行了数据采集、整理、展示目前问题:查询接种记录容易失效,查询接种计划的token目前发现能坚持比较长时间解决方法:如果遇到token失效导致NR无法获取数据,用你抓包的账号重新登录小程序,然后再跑一遍NR
1、汇总所有自费金额2、获取已接种疫苗信息(是否免费/自费金额、疫苗名称、厂商、剂次、接种时间、接种地点等)3、获取待接种疫苗信息

NR流使用主要流程
1.在HASS安装Node-red集成
2.手机微信打开“深圳疾控”公众号——打疫苗——普通疫苗(儿童预约)——接种计划/接种记录(如果绑定了多个账号,则需要切换)3.IOS通过Stream抓包/WIN通过Charles抓PC微信小程序(对应NR的var变量),每个链接的变量对应的数值要改成你自己的

接种记录:
需要抓以下2个请求:
[*]https://imm.szcdc.net/miWeixin/oauth/login?code=XXXXX//这里的token不同的账号、每次登陆都有变化,需要抓取(动态更新的,如果失效了要重新抓)
[*]https://imm.szcdc.net/miWeixin/wx/selfRegister/getWxSelfFiftyoneById?userInfoId=XXXXX&persNo=XXXXX //这里的userInfoId、persNo和上面一样,需要抓取(固定的,只需要抓一次)
接种记录:
需要抓以下1个请求:

[*]https://imm.szcdc.net/mobileSz/oneTwo/getNinePlan//这里的token和接种记录的不一样,所以需要抓取(动态更新的,如果失效了要重新抓)

3.将抓到的headers、payload数据填入NR流的“手工:修改X个参数”、“手工:修改请求头”的function函数中(注意每个请求对应的数据不完全一样),点击运行(HOMEASSISTANT需要改为自己系统的),输入完后点击部署


4.实体名称说明
最近疫苗:VaccineRec
计划疫苗:planVaccine

5.前端卡片是markdown,实体的数据已经包含颜色显示的代码,配合markdown显示更加友好。---
已接种疫苗--[目前总自费:<font color="#00dddd">{{ states('sensor.vaccine_total_cost')}}元</font>]:
{{ state_attr('sensor.vaccinerec','vaccinerec')}}
---
待接种疫苗
{{ state_attr('sensor.planvaccine','planvaccine')}}

water3033 发表于 2022-11-15 08:03:54

点赞,token有没有办法不用每次更新都重新抓? 我抓另外一个小程序的数据也存在这个问题

arthurfsy 发表于 2022-11-15 09:21:50

water3033 发表于 2022-11-15 08:03
点赞,token有没有办法不用每次更新都重新抓? 我抓另外一个小程序的数据也存在这个问题 ...

这个我也在研究,然后这个疫苗NR流是查询接种记录容易过期,查询接种计划的token还挺长时间不过期的,感觉有点神奇

dahai2626 发表于 2022-11-18 16:00:52

这种时效太短了,容易失效错过啊
页: [1]
查看完整版本: 【node-red】深圳儿童疫苗接种信息接入