1、申 请 I D : mkdir700
2、个人邮箱:[email protected]
3、原创技术文章:https://www.z2blog.com/index.php/learn/423.html
超星学习通健康打卡课堂签到 (含API接口)
## 功能描述
登录方式:
支持手机号码登录,支持学号登录
签到功能(2020/08/24更新):
1. 课堂签到:支持普通签到,手势签到,二维码签到,位置签到,拍照签到
2. 健康打卡:支持腾讯云函数,0成本使用;依赖云函数支持API(可多人使用)
[post cid="602" cover="http://"/]
微信推送:
配置server酱key后,签到消息可以推送至您的个人微信
接口部署:
整合FastApi轻量级框架,可以将此项目部署到服务器,通过接口请求以达到签到功能
## 脚本下载
https://github.com/mkdir700/chaoxing_auto_sign
## 如何使用?
### 快速使用
每次需要签到的时候,就在浏览器内访问这个链接
`{}`替换成自己的账号密码
`http://101.89.182.58:9090/sign?username={}&password={}`
### 折腾使用
####1.云函数,自动签到(0成本)
参考此文
[post cid="459" /]
####2.自己有服务器
稍加修改代码,挂在自己的服务器上定时执行
####3.搭建API接口
[post cid="509" /]
## 接口使用
```
http://101.89.182.58:9090/sign/
```
请求代码示例:
```python
import requests
# POST
params = {
'username': 'xxxxx',
'password': 'xxxxx',
'schoolid': '',
'sckey': ''
}
requests.post('http://101.89.182.58:9090/sign/', params=params)
# GET
username = 'xxx'
password = 'xxx'
requests.get('http://101.89.182.58:9090/sign?username={}&password={}'.format(username, password))
```
在线接口调试:
http://101.89.182.58:9090/docs#/default/sign_sign__post
| 请求方式 | 参数 | 说明 | 是否必须 |
| :-: | :-: | :-: | :-: |
| | username | 账号 | 是 |
| POST/GET | password | 密码 | 是 |
| | schoolid | 学校ID | 否 |
| | sckey | server酱key | 否 |
**如果是学号登录,fid参数必填**
### 如何获取FID
关于学号登录方式,有一个额外参数`schoolid`
http://passport2.chaoxing.com/login
![schoolid][5]
## 实现过程
### 1、 登录
```
# 手机号码及邮箱登录URL
# http://i.chaoxing.com/vlogin?pas ... p;userName=username
# 学号登录URL
# http://passport2.chaoxing.com/api/login?name={}&pwd={}&schoolid={}&verify=0
```
Post请求方式,参数就是账号密码
关于学号登录方式,有一个额外参数`schoolid`
http://passport2.chaoxing.com/login
![schoolid][5]
### 2、 访问课程主页
```
# 课程主页url
# http://mooc1-2.chaoxing.com/visit/interaction
```
访问课程主页,是获取所有课程的classid和courseid,需要这两个参数,才能拼接出该门课程的签到url
![获取classid,courseid][3]
### 3、访问任务页面
```
# 课程任务url
# https://mobilelearn.chaoxing.com ... p;jclassId=18855085
```
从课程主页获取classid courseid,现在就可以用到了,访问该课程任务url
这里的目的是为了获取`activeid`这个任务id
![无图片描述][4]
`onclick="activeDetail(129022258,2,null)"`
前面的数字就是`activeid` 后面的参数就是任务类型序号
```
2 签到
4 抢答
14 问卷
目前只知道这些
```
### 4、签到
拿到所有参数后,就可以签到了,直接get请求一下即可
```
# 签到url
# https://mobilelearn.chaoxing.com ... ;courseId=209403053
```
[1]:
[2]:
[3]:
[4]:
[5]:
|