Google 课堂 API 创建 Material

Google Classroom API Create Material

我知道有多个问题基本上问的是同一件事,但我发现的部分问题是问题中缺乏细节,所以我会在这里尝试,因为我认为我已经用尽了所有的可能性。

在较新的 Google 教室中,有一个课业 Tab/Page。这是新的,并替换了旧的 "About" 页面。在此页面中,作为普通网络用户,您可以创建各种材料,包括一个简称为 "Material." 的材料。这是通过单击创建按钮并选择 "Material" 来完成的。

这些材料包含标题、描述和附件的任意组合 files/links。

但是,在使用 API 时,我可以通过以下方式访问任何其他类型的课业: Classroom.Courses.CourseWork,查找这些项目(或通过 API 创建它们)的尝试均未成功。我已成功创建作业(CourseWork 的变体,使用:


Classroom.Courses.CourseWork.create({
    "creatorUserId":'me',
    "state":'draft',
    "courseId":cid,
    "title":'test item',
    "workType":"ASSIGNMENT",
    "materials": [],

  }, 'myClassCode');

}

根据 API 的工作类型枚举仅包含:

我尝试省略 workType(收到错误提示我需要包含它),使用各种猜测,例如 MATERIAL、NONE、ABOUT 和 null(所有收到无效类型的错误).

我可以查询 CourseWork 列表并找到我所有的问题或作业条目,但找不到其他项目的访问权限,这些项目在 class 的“课业”页面中是当前有效的。

可能根本无法通过 API 访问,但我想确认一下。任何意见,将不胜感激。

我是 运行 超级用户,其他一切似乎都正常。

你说得对,目前无法通过 Google 课堂 API 创建课程资料。

的确,已经有一个功能请求:

https://issuetracker.google.com/issues/127591179

我建议您给它加星,以提高知名度并了解该功能实施状态的最新信息。

这是我一直在使用的代码

/------------------------------Create Coursework Material-----------------------------------
function createCourseworkMaterial (id, cTitle, cDescription, topicId) {
  var courseArgs = { 
    "title": cTitle,
    "description": cDescription,
    "state" : "DRAFT",
    "topicId": topicId
  };
  try{
    
    Classroom.Courses.CourseWorkMaterials.create(courseArgs,id);

  }catch(e){
    
       console.error('Classroom.Courses.CourseWorkMaterial.create() yielded an error: ' + e);
  }
  
}