电子科技大学每日自动健康填报
- 获取sessionId
- Fork本仓库
- 点击Settings→Secrets→New repository secret
- 在Name中填入session,在Value中填入刚刚获取到的XXX-XXX
- 进入Actions界面手动运行一次后既可,之后每天8点会自动运行
1. 使用抓包软件,例如IOS的Stream。要求能进行Https的抓包
2. 确保微信小程序关闭情况下,打开微信小程序,进入体温填报界面(先开启抓包,再从微信进入小程序)
3. 可以在抓包的界面找到`GET https://jzsz.uestc.edu.cn/wxvacation/api/epidemic/checkRegisterNew`
4. 查看请求头部的`Referer`有`sessionId=XXX-XXX-XXX-XXX-XXX`即为需要的
使用了mirai作为QQ机器人,通过QQ机器人进行交互,可以自动对微信进行抓包获取sessionId。
每天定时进行一次健康打卡,打卡的结果通过QQ机器人返回。
python3(3.9.6可以使用,其余未测试),openjdk 11,mitmproxy(可选)
pip3 install mitmproxy
-
修改Robot.java,输入管理QQ和机器人QQ的信息
-
修改daka.java,输入打卡地址,打卡地址可以在微信小程序中查看(可选:修改data.txt位置,此文件存放sessionId)
-
在根目录(或者第2步的位置)新建daka.txt,写入sessionId和日期。日期代表要从哪天开始打卡。sessionId获取方法 (当sessionId过期后,QQ机器人会发来登录失败的提示,修改后向QQ机器人发送
打卡
既可)(目前还没遇到失效的情况)00000000-0000-0000-0000-000000000000 2021-08-01
-
运行Gradle中shadow的shadowJar,生成dakaRobot.jar
-
将daka.py,daka.txt,dakaRobot.jar放到同一个目录中,运行py和jar(第一次运行mirai会跳出设备锁,按照上面的步骤验证既可)
-
机器人默认在每天的8点打卡,可以在源文件中修改
如果有空闲的电脑或者虚拟机,推荐一直运行程序,以centos7为例
yum -y groupinstall "Development tools" yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel libffi-devel wget wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tgz mkdir /usr/local/python3 mv Python-3.9.6.tgz /usr/local/python3/ cd /usr/local/python3/ tar xf Python-3.9.6.tgz cd Python-3.9.6 ./configure --prefix=/usr/local/python3 make && make install ln -s /usr/local/python3/bin/python3 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3 cd /etc/profile.d echo 'export PATH=$PATH:/usr/local/python3/bin/' > python3.sh pip3 install mitmproxy
systemctl disable firewalld
yum install -y java-11-openjdk java-11-openjdk-devel.x86_64 ls -lrt /etc/alternatives/java 输出中有一段java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64(根据自己电脑显示的来),下面的那部分要修改成一样的 vi /etc/profile
底部加入
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.12.0.7-0.el7_9.x86_64 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
刷新配置
source /etc/profile
将daka.py,daka.txt,dakaRobot.jar,daka.sh,device.json(第一次成功登录mirai后生成的)放入同一目录下
chmod 777 daka.sh ./daka.sh
- 设置手机的代理服务器,端口为8080,ip为运行py文件的电脑ip。手机打开mitm.it网站,出现内容则说明连接上了代理服务器。
- 根据所用手机选择对应证书下载并且安装证书。安卓手机参考 https://blog.csdn.net/djzhao627/article/details/102812783 https://blog.51cto.com/abool/1429700
- 手机先完全关闭微信,再打开微信小程序,进入健康打卡界面,此时data.txt会被更新,如果打不开健康打卡界面可以关开代理再试
- 获取或者更新sessionId后向机器人发送
打卡
即可开始打卡