使用App脚本创建课堂

时间:2017-05-10 09:09:45

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

我正在尝试使用App Script从电子表格创建Google课堂。我可以成功创建类,但它不会将课程材料(1 Doc)添加到about页面。

这是我正在使用的代码,我尝试使用API reference无济于事。

有人可以告诉我如何正确格式化courseMaterialSets以包含我的驱动器中的Google文档。

var create = Classroom.Courses.create({
"ownerId": '-My email address-',
  "name": getData[i][0],
  "section": getData[i][1],
  "descriptionHeading": getData[i][2],
  "description": getData[i][2],
    "courseMaterialSets" : [{
            "title" : 'Course Outline',
            "materials" : [{
                    "driveFile" : { 
                            "id" : getData[i][5],
                            "title" : 'Course Outline' ,
                            "alternateLink": getData[i][4], 
                            "thumbnailUrl" : 'https://drive.google.com/uc?export=download&id=-Image ID-',

                    },
                }
            ]
        }
    ]
})
}
Logger.log(create)
}

谢谢。

修改

我已更新代码以反映评论中的建议并记录var create的值,该值返回新创建的课堂的所有信息,但未提及课程材料集。

2 个答案:

答案 0 :(得分:1)

According to the documentation您必须使用JSON specify the DriveFile object

"driveFile" : {
   "id":            theDocIdString,
   "title":         theDocTitleString,
   "alternateLink": urlToFileString,
   "thumbnailUrl":  imgThumbnailString 
   }

您当然可以从工作表中提取所有这些数据,也可以使用变量来遍历资源。

答案 1 :(得分:0)

以下是我尝试成功创建课程的代码,但我也获取要附加到Google课堂创建的ABOUT标签的课程资料。

function createCourse() {
  var resource = {
    name: "XYZ course",
    room: "The Great Hall",
    ownerId: "me",
    courseMaterialSets: [{
      title: "course materials",
      materials: [
      {

        driveFile: {
          id: "insert id of google drive file" 

        }


      }
      ],
  }],
  }
  var newCourse = Classroom.Courses.create(resource);


}

我还尝试创建课程,然后接受Google课堂中的课程并尝试添加课堂设置。这也没有成功。

function addClassSet() {
  var id = "course id obtained with sample script in documentation";
  var resource = {
    name: "XYZ course",
    room: "The Great Hall",
    courseMaterialSets: [{
      title: "course materials",
      materials: [
      {

        driveFile: {
          id: "drive file id" //drive file was not added

        }


      }
      ],
  }],
    description: "This is a trial course", //this worked
  }
  Classroom.Courses.update(resource, id);
}

是因为课程资料的documentation states是只读的吗?