使用Google Classroom API将驱动器文件附加到作业

时间:2017-06-05 19:40:03

标签: json google-apps-script google-classroom

使用Google Apps脚本我已设法使用以下代码创建作业:

Classroom.Courses.CourseWork.create({
 "courseId": id,
 "title" : title,
 "description" : desc,
 "workType" : 'ASSIGNMENT',
 }, id)

这样可以正常工作,在课堂上创建一个草稿。但是,当我尝试附加像这样的驱动器文件时:

  Classroom.Courses.CourseWork.create({
    "courseId": id,
    "title" : title,
    "description" : desc,
    "workType" : 'ASSIGNMENT',
    "materials" : [
      {
      "driveFile": {
        "id" : fileId,
        "title" : fileTitle,
        "alternateLink" : fileLink,
        "thumbnailUrl" : fileThumbnail,
      },
      "shareMode" : 'STUDENT_COPY',
    }
    ],
  }, id)

我收到这些错误:

执行失败:收到无效的JSON有效负载。 'course_work.materials [0]'中的未知名称“share_mode”:找不到字段。

收到无效的JSON有效负载。 'course_work.materials [0] .drive_file'中的未知名称“alternate_link”:找不到字段。

收到无效的JSON有效负载。 'course_work.materials [0] .drive_file'中的未知名称“id”:找不到字段。

收到无效的JSON有效负载。 'course_work.materials [0] .drive_file'中的未知名称“title”:找不到字段。

收到无效的JSON有效负载。 'course_work.materials [0] .drive_file'中的未知名称“thumbnail_url”:找不到字段。 (第61行,文件“课堂”)[1.187秒总运行时间]

我们将不胜感激,谢谢

1 个答案:

答案 0 :(得分:1)

您可以参考此SO answer。由于请求格式错误,可能会发生此错误。

示例代码:

function myFunction() {
  var ClassSource =  {
    title: "Test File",
    state: "DRAFT",
    materials: [
      {
        driveFile:{
        driveFile: {
          id: "fileID", 
          title: "Sample Document"

        },
        shareMode: "STUDENT_COPY"
        }

      }
      ],
    workType: "ASSIGNMENT"
  };

  Classroom.Courses.CourseWork.create(ClassSource, COURSEID)
  //Logger.log(exec);
}

您可以使用Try this API尝试此操作。

希望这有帮助!