1. 同步数据到中国大学MOOC
1.1. 课程期次新增接口
1.1.1. 创建课程
创建课程
请求说明
请求方法:POST
请求地址 :https://www.icourse163.org/open/term/create
请求参数(body)
{
"appId": "ffd1e010d999a18f3eaa91973da7e2df",
"courseName": "测试课程",
"courseSN": "12445",
"endTime": 1559269192000,
"lecturerNameList": [
"施寒丹"
],
"nonce": 1559096661914,
"signature": "109796d4183d34bc572a2f2ba364bbdf40c93149",
"startTime": 1559182792000,
"openUid" : "xxxxx",
"timestamp": 1559096661914
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
courseName | Integer | 是 | 课程名称 |
courseSN | String | 是 | 课程编号 |
startTime | Integer | 否 | 开课时间 |
endTime | String | 否 | 结束时间 |
openUid | String | 是 | 教师open uid |
lecturerNameList | Array |
否 | 讲师团队列表 |
返回结果
{
"code": 200,
"result": 1003246012
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
result | Long | 期次ID |
1.1.2. 发布期次
发布期次。如果已存在该课程编号的课程,会在该课程下创建新期次。
请求说明
请求方法:POST
请求地址 :https://www.icourse163.org/open/term/publish
请求参数(application/json)
{
"appId": "ffd1e010d999a18f3eaa91973da7e2df",
"nonce": 1559117956529,
"signature": "48c74f489df07a8eb079197af25a8b976d894648",
"termId": 1003244002,
"timestamp": 1559117956529
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
termId | ong | 是 | 期次ID |
返回结果
{
"code": 200,
"result": 1003246012
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
result | boolean | 是否发布成功 |
1.1.3. 导入课表
将老师的课程信息导入到慕课堂
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/classroom/uploadShedule
请求参数
{
"appId": "ffd1e010d999a18f3eaa91973da7e2df",
"nonce": 1559117956529,
"signature": "48c74f489df07a8eb079197af25a8b976d894648",
"timestamp": 1559117956529,
"courseNo": "1234",
"courseName": "课程111",
"college": "计算机",
"courseType": "公共课",
"startYear": 2020,
"semester": "秋季",
"courseTime": "每周一",
"classTime": "上午",
"classAddr": "综合楼",
"teacherNo": "H112233",
"teacherName": "张三",
"teacherIdCard": "147258",
"teacherCollege": "计算机"
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
courseNo | String | 是 | 课程编号 |
courseName | String | 是 | 课程名称 |
college | String | 是 | 课程所属学院 |
courseType | String | 否 | 课程类型 |
startYear | Long | 是 | 开课年份 |
semester | String | 是 | 开课学期 |
courseTime | String | 否 | 开课时间 |
classTime | String | 是 | 上课时间 |
classAddr | String | 是 | 上课地点 |
teacherNo | String | 是 | 老师工号 |
teacherName | String | 是 | 老师姓名 |
teacherIdCard | String | 是 | 老师身份证后六位 |
teacherCollege | String | 否 | 老师所属学院 |
返回结果
{
"code": 200,
"result": true
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
result | Boolean | 是否成功导入 |
1.1.4. 学生报名导入慕课堂
将学生报名进入对应老师的慕课堂中
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/classroom/enroll
请求参数
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
courseNo:
studentName:
studentNumber:
idCard:
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
courseNo | String | 是 | 课程编号 |
studentName | String | 是 | 学生姓名 |
studentNumber | String | 是 | 学生学号 |
idCard | String | 是 | 学生身份证后六位 |
返回结果
{
"code": 200,
"result": {
"success": true,
"message": ""
}
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
success | Boolean | 是否成功导入 |
message | String | 提示信息。若直接加入课堂则为空,否则提示选课的信息,如学生/老师待认证(success=true)、选课失败(success=false)等信息。 |
1.2. 用户选退课接口
1.2.1. 用户自动选课接口
根据用户的openUid和 termId为用户自动选课
请求说明
请求方法:GET
请求参数(x-www-form-urlencoded)
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
termId: 12345
openUid: xxxxxxx
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
termId | Long | 是 | 要选的学期id |
openUid | String | 是 | 用户的openUid |
返回结果
{
"code":200,
"result":{
"enroll":"false",
"info":"enroll失败的原因"
}
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
enroll | String | 布尔值,选课是否成功 |
info | String | 选课成功或失败原因 |
1.2.2. 用户退出课程接口
为用户退出指定课程
请求说明
请求方法:GET
请求参数(x-www-form-urlencoded)
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
termId:
openUid:
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
termId | Long | 是 | 要退选的学期id |
openUid | String | 是 | 学生openUid |
返回结果
{
"code":200,
"result":“处理完成”
}
1.2.3. 用户自动选课接口(批量)
根据用户的openUid和 termId为用户自动选课
请求说明
请求方法:POST
请求参数(x-www-form-urlencoded)
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
termId: 123456
openUids:
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
openUids | Set |
是 | 用户openUid列表 |
返回结果
{
"code":200,
"result":[
{
"openUid":"ddddssss",
"enroll":"false",
"message":"enroll失败的原因"
}
]
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
openUid | String | 用户openUid |
enroll | String | 布尔值,选课是否成功 |
message | String | 选课成功或失败的原因 |
1.3. 信息变更
变更信息
请求说明
请求方法:POST
请求参数(application/json)
{
"openUidList":["9dc8f10af916f15456129b2ac6376717","b950ksf8s80wq5tfy3pxnlvpr85eh0e9"],
"changeStatus":1,
"reason":"forbid"
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
format | String | 否 | 返回结果序列化类型 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
openUidList | Array |
否 | 用户列表 |
changeStatus | Integer | 是 | 0:恢复,1:禁止 |
Reason | 否 | 理由 |
返回结果
{
"code": 200,
"result":{
"openUidList":["9dc8f10af916f15456129b2ac6376717","b950ksf8s80wq5tfy3pxnlvpr85eh0e9"],
}
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
openUidList | List | openUidList表示更新成功的记录,未更新成功不记录在列表中 |
1.4. 组织架构同步
同步老师信息和学生信息
1.4.1. 同步老师信息
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/school/import/teacher
请求参数(application/json)
[{"teacherName":"张老师", "teacherNo":"S1003", "collegeId":122013}]
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
teacherName | String | 是 | 老师姓名 |
teacherNo | String | 是 | 工号 |
collegeId | Long | 否 | 院系ID |
返回结果
{
"code": 200,
"result": [
{
"teacherNo": "S1003",
"success": true
}
]
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
teacherNo | String | 工号 |
success | boolean | 上传结果,true:成功,false:失败 |
message | String | 失败原因 |
1.4.2. 同步学生信息
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/school/import/student
请求参数(application/json)
[{"realName":"小麦", "number":"S1002", "collegeId":122013, "idCard":123456}]
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
realName | String | 是 | 学生姓名 |
number | String | 是 | 学号 |
collegeId | Long | 否 | 院系ID |
idCard | String | 否 | 学生身份证后6位 |
返回结果
{
"code": 200,
"result": [
{
"number": "S1002",
"success": true
}
]
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
number | String | 学号 |
success | boolean | 上传结果,true:成功,false:失败 |
message | String | 失败原因 |
1.5. 同步课程及选课数据
同步学生选课信息
1.5.1. 同步选课信息
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/pre/enroll/course
请求参数(application/json)
{
"numbers":[20110203,20110202,20110201],
"termId":1003476003
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
numbers | Array |
是 | 学生学号列表 |
termId | Long | 是 | 课程学期ID |
返回结果
{
"code": 200,
"result": [
{
"number": "20110203",
"success": true
}
]
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
number | String | 学号 |
success | boolean | 同步结果,true:成功,false:失败 |
message | String | 失败原因 |
1.5.2. 删除选课信息
请求说明
请求方法:POST
请求地址:https://www.icourse163.org/mm-open-api/open/pre/unenroll/course
请求参数(application/json)
{
"numbers":[20110203,20110202,20110201],
"termId":1003476003
}
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
numbers | Array |
是 | 学生学号列表 |
termId | Long | 是 | 课程学期ID |
返回结果
{
"code": 200,
"result": [
{
"number": "20110203",
"success": true
}
]
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
number | String | 学号 |
success | boolean | true:成功,false:失败 |
message | String | 失败原因 |
1.5.3. 排课信息同步(教务系统原数据导入)2023年04月更新
教务系统中排课信息同步至中国大学MOOC平台,每次最多100个。
请求说明
请求方法:POST
请求地址:http://www.icourse163.org/mm-open-api/open/importCourseSchedule
请求头:Content-Type: application/json
请求参数
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
请求体(josn):
[{"courseNo":"NO003","teachClassNo":"JIAOXUEBAN03","courseName":"测试课程1","teacherNo":"112211","teachAdress":"教学楼101","teachTime":"周二 2-422 节"},{"courseNo":"NO004","teachClassNo":"JIAOXUEBAN04","courseName":"测试课程2","teacherNo":"112211","teachAdress":"教学楼102","teachTime":"周三 3-5节"}]
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
format | String | 否 | 返回结果序列化类型 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
courseNo | String | 是 | 课程编号 |
teachClassNo | String | 是 | 教学班编号 |
courseName | String | 是 | 课程名称 |
teacherNo | String | 是 | 教师编号 |
teachAdress | String | 是 | 上课地点 |
teachTime | String | 是 | 上课时间 |
返回结果
{
"code": 200,
"result": {
"errorDtos": [
{
"cellStyleMap": {},
"courseName": "测试课程01",
"courseNo": "NO001",
"error": "该行数据之前导入操作已经处理,不用重复导入\n",
"teachAdress": "教学楼101",
"teachClassNo": "JIAOXUEBAN01",
"teachTime": "周二 2-42 节",
"teacherNo": "112211"
},
...
}
]
}
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
code | Long | 请求是否成功,200即代表成功 |
errorDtos | String | 报错日志,空为导入成功,报错请看对应error说明 |
1.5.4. 选课信息同步(按学校教学班编号导入)2023年04月更新
教务系统中选课信息同步至中国大学MOOC平台,每次最多100个,每个学校并发设置是1。
请求说明
请求方法:POST
请求地址:http://www.icourse163.org/mm-open-api/open/importClassStudent
请求头:Content-Type: application/json
请求参数
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
请求体(josn):
[{"studentNumber":"001","teachClassNo":"JIAOXUEBAN03"},{"studentNumber":"002","teachClassNo":"JIAOXUEBAN04"}]
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
format | String | 否 | 返回结果序列化类型 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
studentNumber | String | 是 | 学号 |
teachClassNo | String | 是 | 教学班编号 |
返回结果
{
"code": 200,
"result": {
"errorDtos": [
{
"cellStyleMap": {},
"error": "该行数据之前导入操作已经处理,不用重复导入\n",
"studentNumber": "120323030109",
"teachClassNo": "JIAOXUEBAN01"
},
...
}
]
}
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
code | Long | 请求是否成功,200即代表成功 |
result | String | 报错日志,空为导入成功,报错请看对应error说明 |
1.5.5. 退选课信息同步(按学校教学班编号导入)2023年04月更新
教务系统中退课信息同步至中国大学MOOC平台,每次1个。
请求说明
请求方法:POST
请求地址:http://www.icourse163.org/mm-open-api/open/deleteStudentFromTeachClass
请求参数
appId: ffd1e010d999a18f3eaa91973da7e2df
nonce: 1559117956529
signature: 48c74f489df07a8eb079197af25a8b976d894648
timestamp: 1559117956529
teachClassNo:JIAOXUEBAN02
studentNo:120323030109
参数说明
字段 | 字段类型 | 是否必填 | 字段说明 |
---|---|---|---|
appId | String | 是 | 应用ID |
signature | String | 是 | 签名 |
format | String | 否 | 返回结果序列化类型 |
nonce | Long | 是 | 随机数 |
timestamp | Long | 是 | 时间戳随机数 |
studentNo | String | 是 | 学号 |
teachClassNo | String | 是 | 教学班编号 |
返回结果
{
"code": 200,
"result": true
}
返回参数
字段 | 字段类型 | 字段说明 |
---|---|---|
code | Long | 请求是否成功,200即代表成功 |
result | String | 报错日志,ture为导入成功 |