发表于 2020-11-22 14:35

申请会员ID:mkdir700

1、申 请 I D : mkdir700
2、个人邮箱:mkdir700@gmail.com
3、原创技术文章:https://www.z2blog.com/index.php/learn/423.html


超星学习通健康打卡课堂签到 (含API接口)

## 功能描述

登录方式:

支持手机号码登录,支持学号登录

签到功能(2020/08/24更新):

1. 课堂签到:支持普通签到,手势签到,二维码签到,位置签到,拍照签到
2. 健康打卡:支持腾讯云函数,0成本使用;依赖云函数支持API(可多人使用)



微信推送:

配置server酱key后,签到消息可以推送至您的个人微信

接口部署:

整合FastApi轻量级框架,可以将此项目部署到服务器,通过接口请求以达到签到功能

## 脚本下载

https://github.com/mkdir700/chaoxing_auto_sign

## 如何使用?

### 快速使用

每次需要签到的时候,就在浏览器内访问这个链接

`{}`替换成自己的账号密码

`http://101.89.182.58:9090/sign?username={}&password={}`

### 折腾使用

####1.云函数,自动签到(0成本)
参考此文


####2.自己有服务器
稍加修改代码,挂在自己的服务器上定时执行

####3.搭建API接口


## 接口使用

```
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

!

## 实现过程

### 1、 登录

```
# 手机号码及邮箱登录URL
# http://i.chaoxing.com/vlogin?passWord=passwordwu&userName=username

# 学号登录URL
# http://passport2.chaoxing.com/api/login?name={}&pwd={}&schoolid={}&verify=0
```

Post请求方式,参数就是账号密码
关于学号登录方式,有一个额外参数`schoolid`

http://passport2.chaoxing.com/login

!

### 2、 访问课程主页

```
# 课程主页url
# http://mooc1-2.chaoxing.com/visit/interaction
```

访问课程主页,是获取所有课程的classid和courseid,需要这两个参数,才能拼接出该门课程的签到url
![获取classid,courseid]

### 3、访问任务页面

```
# 课程任务url
# https://mobilelearn.chaoxing.com/widget/pcpick/stu/index?courseId=209320132&jclassId=18855085
```

从课程主页获取classid courseid,现在就可以用到了,访问该课程任务url
这里的目的是为了获取`activeid`这个任务id
![无图片描述]

`onclick="activeDetail(129022258,2,null)"`
前面的数字就是`activeid` 后面的参数就是任务类型序号

```
2 签到
4 抢答
14 问卷
目前只知道这些
```

### 4、签到

拿到所有参数后,就可以签到了,直接get请求一下即可

```
# 签到url
# https://mobilelearn.chaoxing.com/widget/sign/pcStuSignController/preSign?activeId=126433134&classId=19047512&courseId=209403053
```

: http://assets.z2blog.com/imgbed/2020/03/06/20200306880794.png
: https://www.z2blog.com//usr/uploads/2020/03/493803449.png
: http://assets.z2blog.com/imgbed/2020/03/06/20200306606197.png
: http://assets.z2blog.com/imgbed/2020/03/06/20200306740615.png
: https://ae01.alicdn.com/kf/U99b1d82401c14c2192b3ec5e81fbaa05F.png



admin 发表于 2020-12-11 22:34

您好,可以重新整理贴出来,文章不全。
页: [1]
查看完整版本: 申请会员ID:mkdir700