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

如何通过脚本为Google Classroom现有主题内的资料添加文档URL?

Google Classroom 向现有课程资料添加资源链接的解决方案

核心实现思路

Google Classroom API 的 CourseWorkMaterials.patch 确实无法直接追加附件,但可以通过获取完整资料对象→合并新旧附件→用update方法覆盖更新的方式实现需求,具体操作步骤如下:

  • 获取目标资料的完整数据
    使用 Classroom.Courses.CourseWorkMaterials.get(courseId, materialId) 方法,获取包含所有现有附件(materials 字段)的完整课程资料对象。

  • 构造新的资源链接附件
    根据资源类型(PDF/MP3/MP4)创建对应的 Material 对象,以外部链接为例:

    const newLinkMaterial = {
      link: {
        url: "https://your-resource-url.com/file.pdf", // 替换为实际资源URL
        title: "课程补充资料" // 可选,Classroom中显示的资源名称
      }
    };
    
  • 合并新旧附件列表
    将新构造的附件对象追加到现有 materials 数组中,保留原有内容不被覆盖:

    const existingMaterials = courseWorkMaterial.materials || [];
    existingMaterials.push(newLinkMaterial);
    
  • 调用update方法完成更新
    使用 Classroom.Courses.CourseWorkMaterials.update() 方法传入更新后的完整资料对象,实现向现有资料添加新链接的效果:

    function addLinkToMaterial(courseId, materialId, linkUrl, linkTitle) {
      // 获取现有资料
      const targetMaterial = Classroom.Courses.CourseWorkMaterials.get(courseId, materialId);
      
      // 构造新链接
      const newLink = {
        link: {
          url: linkUrl,
          title: linkTitle || "新增资源"
        }
      };
      
      // 合并附件
      targetMaterial.materials = targetMaterial.materials || [];
      targetMaterial.materials.push(newLink);
      
      // 执行更新
      Classroom.Courses.CourseWorkMaterials.update(targetMaterial, courseId, materialId);
    }
    

批量处理提示

针对每月70个教室的批量操作:

  1. 先用 Classroom.Courses.CourseWorkMaterials.list(courseId, {topicId: "目标主题ID"}) 筛选出每个教室对应主题下的指定资料,自动获取 materialId;
  2. 循环遍历课程ID列表执行更新时,加入 Utilities.sleep(1000) 避免触发API调用限流;
  3. 可以提前将所有资源URL整理成数组,配合循环批量完成添加。

内容的提问来源于stack exchange,提问作者LUCA DELLA GHEZZA

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 17:00:26