You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Web service API获取Moodle全课程待提交作业及完成状态

Moodle获取全课程作业及完成状态实现方案

核心需求

获取所有课程下的全部作业及其学生侧完成状态,即Moodle控制面板时间线板块展示的内容。

现有接口问题梳理

  • 调用core_course_get_enrolled_courses_by_timeline_classification传入classification=inprogress可获取学生所有进行中课程,但仅能返回课程基础信息,不含作业相关数据
  • 调用mod_assign_get_assignments传入上述接口返回的课程ID可批量获取多门课程作业信息,但不支持返回学生侧作业完成标记状态
  • 调用core_course_get_contents可返回单门课程所有活动的完成状态,但存在两个明显缺陷:仅支持单次查询单门课程、会返回课程下所有模块全量活动数据,冗余度极高

各接口参数说明

1. core_course_get_enrolled_courses_by_timeline_classification

必填参数

  • classification:分类筛选值,可选值包括inprogress(进行中)、future(未开始)、past(已结束)、favourites(收藏)、all(全部),按需传入即可

可选参数

  • limit:返回结果数量限制,默认0即返回全部
  • offset:分页偏移量,默认0
  • sort:排序规则,默认按课程最后访问时间倒序

2. mod_assign_get_assignments

必填参数

无全局必填参数,若需要限定返回指定课程的作业,需传入:

  • courseids[0]、courseids[1]...:要查询的课程ID数组,支持同时传入多门课程ID批量查询

可选参数

  • capabilities[0]、capabilities[1]...:按用户权限筛选返回的作业,默认不需要传入
  • includenotenrolledcourses:是否返回用户未选课的课程作业,默认值0(否)

3. core_course_get_contents

必填参数

  • courseid:要查询的单门课程ID

可选参数

  • options[0][name]、options[0][value]:配置返回内容规则,可配置项包括excludemodules(排除指定模块)、excludecontents(仅返回模块基础信息不返回内容详情)等,可一定程度降低数据冗余

优化方案补充:core_completion_get_activities_completion_status

替代core_course_get_contents查询作业完成状态,仅返回指定活动的完成状态,无冗余数据

必填参数

  • courseid:要查询的课程ID
  • userid:要查询完成状态的用户ID,传入当前登录用户ID即可

实现逻辑

先通过mod_assign_get_assignments批量拿到所有课程的作业ID后,按课程分组调用该接口,即可批量获取每门课程下所有作业的完成状态,数据量远小于core_course_get_contents返回结果

内容的提问来源于stack exchange,提问作者Sujit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 08:36:07