Semestra

连接 Canvas

把 Semestra 关联到你的 Canvas 账户、一个学业项目及其课程。

Semestra 通过服务商接入学习平台,目前只支持 Canvas。连接使用你自己的凭证读取 Canvas。除非你在全局设置 → 集成 → 同步里开启“允许在平台上做修改”,Semestra 不会修改 Canvas 上的任何内容;目前开启后也只会在你于 Semestra 中打开公告时,把它在 Canvas 上标为已读。

分为三层,每层设置一次:

层级位置内容
连接全局设置 → 集成 → LMS 连接Canvas 地址和凭证,可以有多个
学业项目学业项目设置 → 集成 → LMS这个学业项目的课程使用哪个连接
课程课程设置 → 集成 → LMS这门课程关联到哪门 Canvas 课程

1. 添加连接

在 Canvas 里打开 Account → Settings,在 Approved integrations 下选择 New access token。复制令牌,Canvas 只显示一次。

在 Semestra 里添加 LMS 连接,选择 Canvas,填入 Canvas 地址(例如 https://school.instructure.com;省略 https:// 会自动补上)和令牌。

保存前 Semestra 会用 Canvas 验证令牌。令牌加密保存,之后只显示打码后的提示。修改地址时必须重新填写令牌,所以已保存的令牌永远不会发给另一个服务器。

连接每六小时重新检查一次。令牌被吊销或过期的连接会标记为错误,直到你更新它。

用学校账号登录

设置了 SEMESTRA_LMS_CANVAS_SIGN_IN 的自部署实例可以不创建令牌就完成连接:添加连接时选择学校账号而不是 API 令牌,阅读风险提示,接受后继续,再按下面三步操作。是否使用请自行决定,Semestra 不承担由此带来的任何后果。

填入 Canvas 地址,必须是 https://。

选择打开 Canvas 登录,在学校页面登录并完成验证。Semestra 看不到你的密码。

Canvas 最后会停在 sso.canvaslms.com 上一个显示“Page Not Found”的页面。这是正常的,授权码就在地址里。把完整地址复制到登录后的地址,再选择验证并保存。其中的授权码几分钟内有效,过期了就重新登录。

Semestra 加密保存换到的令牌,并自动续期访问令牌,所以这个连接会一直有效,直到这次登录被结束。删除连接或更换登录时,也会尝试在 Canvas 上结束旧的登录。如果失败(例如连不上 Canvas),请自己到 Canvas 的 Approved integrations 里移除 Semestra。在那里移除后,连接会显示错误,直到你重新登录。

这种方式使用 Canvas Android App 的 OAuth 客户端,并以该 App 的身份发起请求。Instructure 并未向第三方应用提供这种方式:它可能违反学校政策或 Canvas 条款,也可能随时失效。在这里登录还可能让手机上的 Canvas App 退出登录,反过来也一样。移动 App 不认识的 Canvas 站点(例如不少学校自建的站点)无法使用。如果不确定,请使用个人访问令牌。

2. 绑定学业项目

在学业项目设置里选择它的课程使用的连接。只要学业项目下还有关联的课程,绑定就不能修改或移除。

3. 关联课程

可以从 Canvas 导入课程,导入时就会建立关联;也可以在已有课程的设置 → 集成 → LMS 里选择对应的 Canvas 课程。同一个学业项目里,一门 Canvas 课程只能关联一门课程;全年课只有一个关联。在同一处还可以从 Canvas 刷新课程信息、更换关联的课程或解除关联。

每个关联都有一个日历与作业变化开关。关闭后,这门课程的 Canvas 日历事件会从日历中移除,也不再检测作业变化;Canvas 页签和 Sem 仍然可以读取这门课程。

关联后能得到什么

  • Canvas 页签(插件,按账户安装):实时读取已关联课程的公告、作业与成绩(作业、测验和成绩合在一个列表里)、单元、页面、文件和课程大纲。应用里不能直接显示的页签(如 People、Piazza)会在 Canvas 中打开。页面、公告、作业说明和课程大纲默认用 Semestra 的排版显示;选择 Canvas 样式可以保留 Canvas 里的颜色和排版(学校主题文件里的样式除外)。标题旁的菜单可以临时切换,默认方式在设置 → 插件 → Canvas 页签里修改。
  • 日历:开着“日历与作业变化”的课程,其 Canvas 日历事件会显示在学期日历里,带 Canvas 标记,详情里可以在 Canvas 中打开。作业导入后(成为考核或待办)以待办的形式出现在日历中。
  • 提交后完成待办:导入的作业在 Canvas 上显示已提交时,对应的待办自动勾掉(无论导入成待办还是考核)。每个作业只勾一次,之后取消勾选不会再被勾上。大约每小时检查一次,只看截止在两周前以后的作业。可在全局设置 → 集成 → 同步里关闭。
  • 公告卡片,可放在课程和学期看板上。
  • Sem 和 MCP 可以读取同样的数据(见 MCP 工具)。

读取结果缓存五分钟;在 Canvas 页签里刷新会立即重新读取。

自建的 Canvas

位于内网或使用纯 http:// 的 Canvas 服务器,需要 SEMESTRA_ALLOW_PRIVATE_EGRESS=true(自部署 compose 文件的默认值)。托管版只能使用公网的 https:// 地址。

尚不支持

不会读取 New Quizzes 和讨论的 checkpoints。