Skip to content

jiechen257/auto-checkin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 

Repository files navigation

易校园自动打卡脚本

概述

这是一个易校园自动打卡脚本,结合云服务器的定时任务功能,可以实现每天自动打卡。

技术实现

  1. 通过 HTTPS 抓取易校园的打卡接口名称和数据,获取必要的参数(个人信息和登录凭证)。
  2. 使用 Python 脚本构造实体数据,发送 HTTP 请求。
  3. 集成邮箱的 SMTP 功能,发送邮件通知打卡结果。
  4. 利用服务器的 shell 脚本创建定时任务,实现每天自动打卡。

使用说明

环境配置

  1. 安装 Python 3.x

  2. 安装依赖包:

    pip3 install requests yagmail
    

    注意:yagmail 包可能需要使用 pip3 安装,详见相关 issues。

  3. 配置环境变量或创建 config.py 文件,包含以下信息:

    • 邮箱配置(SMTP 服务器,用户名,授权码)
    • 易校园账号信息(用户 ID,学校代码等)
  4. 运行脚本:

    python app.py
    

    如果显示 detail 详情和打卡成功的回调,则表示配置正确。

打卡功能实现

注意:这部分需要进行 HTTPS 抓包,可以使用 Whistle 或 Charles,记得安装 CA 证书。

打卡过程包含两个主要步骤:

  1. 调用 getDetail 接口获取个人打卡信息
  2. 调用 doDetail 接口发送 POST 请求完成打卡

getDetail 接口

此接口返回个人信息,包括学校代码、姓名、手机号等。详细的数据格式请参考代码中的注释。

doDetail 接口

使用从 getDetail 获取的数据,构造请求体并发送到此接口完成打卡。

打卡成功的返回格式如下:

{
  "statusCode": 0,
  "message": "操作成功",
  "data": {}
}

邮件通知

脚本使用 SMTP 协议发送打卡结果通知邮件。请在配置文件中正确设置邮箱信息。

自动化配置

使用云服务器的定时任务功能实现每日自动打卡。以下是宝塔面板的配置示例:

定时任务配置

其他自动化方案请自行搜索相关资料。

注意事项

  • 请遵守学校规定,不要滥用本脚本。
  • 定期检查脚本运行状况,确保打卡正常进行。
  • 重要的个人信息请使用环境变量或配置文件存储,不要直接硬编码在脚本中。
  • 如遇到问题,请检查网络连接、账号信息是否正确,并查看日志输出。

About

Automatic checkin script in 易校园

Resources

Stars

Watchers

Forks

Languages