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

无需插件或直接访问数据库获取访问日志?Moodle API学习数据拉取咨询

Moodle访问日志API拉取方案(无需插件/数据库直连)

讲师拉取课程访问日志

Moodle核心Web服务API支持直接拉取访问日志,无需额外插件或数据库权限,操作步骤如下:

  1. 配置Web服务并生成令牌

    • 进入站点管理 → 高级功能,启用"Web services"
    • 进入站点管理 → 插件 → Web服务 → 外部服务,创建专属服务(如course_log_service),添加core_log_get_logs函数
    • 进入站点管理 → 插件 → Web服务 → 管理令牌,为你的讲师账号生成令牌(确保账号拥有core/log:view权限)
  2. API调用示例
    以下是Python实现代码(几行即可完成,贴近Canvas的操作体验):

    import requests
    
    MOODLE_SITE = "https://your-moodle-domain.com"
    TEACHER_TOKEN = "your-generated-token"
    TARGET_COURSE_ID = 123  # 替换为你的课程ID
    
    # 构造请求参数
    params = {
        "wstoken": TEACHER_TOKEN,
        "wsfunction": "core_log_get_logs",
        "moodlewsrestformat": "json",
        "courseid": TARGET_COURSE_ID,
        "action": "view",  # 可选:仅过滤"查看"类动作
        "component": "mod_resource,mod_page"  # 可选:仅过滤资源/页面访问记录
    }
    
    # 拉取日志数据
    response = requests.get(f"{MOODLE_SITE}/webservice/rest/server.php", params=params)
    raw_log_data = response.json()
    # 后续可直接用raw_log_data做可视化分析
    

    也可用curl快速测试:

    curl "https://your-moodle-domain.com/webservice/rest/server.php?wstoken=your-token&wsfunction=core_log_get_logs&moodlewsrestformat=json&courseid=123&action=view"
    

学生获取自身访问数据

学生可通过相同API拉取个人访问日志,只需确保账号拥有core/log:viewown权限(默认已开启),操作如下:

  1. 学生生成个人令牌

    • 学生进入个人主页 → 偏好设置 → 安全 → 生成令牌,选择之前创建的course_log_service
  2. 学生端API调用示例

    import requests
    
    MOODLE_SITE = "https://your-moodle-domain.com"
    STUDENT_TOKEN = "student-personal-token"
    
    params = {
        "wstoken": STUDENT_TOKEN,
        "wsfunction": "core_log_get_logs",
        "moodlewsrestformat": "json",
        "userid": "me"  # 自动关联当前学生账号
    }
    
    response = requests.get(f"{MOODLE_SITE}/webservice/rest/server.php", params=params)
    personal_logs = response.json()
    

关键注意事项

  • 权限自动过滤:Moodle会根据令牌所属账号的权限返回对应日志,讲师能获取课程内所有学生记录,学生仅能查看自身数据
  • 数据字段:返回的日志包含用户ID、时间戳、访问资源ID、动作类型等原始字段,可直接用于可视化分析
  • 版本兼容:core_log_get_logs函数适用于Moodle 3.10+版本,旧版本可替换为core_log_get_entries(功能逻辑一致)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:45:39