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

如何从LTI 1.3外部工具后端获取Canvas课程完整章节(含已删除)

获取Canvas LMS课程完整章节列表(含已删除章节)的最佳实践

你之前通过开发者密钥自定义字段$Canvas.course.sectionIds和$com.instructure.User.sectionNames获取章节信息的方式,只能拿到当前用户关联的活跃章节,无法获取已删除的章节数据。要在外部工具后端拿到课程完整章节列表(包括已删除项),最佳方案是直接调用Canvas官方API,具体操作如下:

  • 调用Canvas课程章节API
    使用GET /api/v1/courses/:course_id/sections接口,必须添加include[]=deleted查询参数,这样接口会返回课程内所有章节,包括已删除的条目。

  • 确保权限有效
    外部工具后端需要通过LTI 1.3的OAuth 2.0流程获取合法的访问令牌,并且令牌必须包含url:GET|/api/v1/courses/:course_id/sections的权限范围——在Canvas开发者密钥配置页面,要把这个权限添加到工具的权限列表里。

  • 识别已删除章节
    API返回的每个章节对象里,workflow_state字段会标识章节状态:值为deleted的是已删除章节,active则是正常活跃的章节。

  • 合理使用缓存
    章节数据不会频繁变动,后端可以缓存API的响应结果,减少重复请求。可以设置几小时的缓存有效期,或者监听Canvas的章节更新/删除webhook事件,触发缓存刷新。

  • 处理分页场景
    如果课程章节数量较多,API会自动分页。你需要通过page和per_page参数批量获取数据,确保拿到课程的全部章节。

相比自定义字段的方式,Canvas API能提供课程维度的完整章节数据,不受用户关联范围的限制,完全满足你获取已删除章节的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 12:45:42