我正在尝试使用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
的值,该值返回新创建的课堂的所有信息,但未提及课程材料集。
答案 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是只读的吗?