2017-05-10 38 views
0

我试图使用应用程序脚本从电子表格创建Google教室。我可以成功创建课程,但它不会将课程资料(1 Doc)添加到关于页面。使用应用程序脚本创建教室

这是我正在使用的代码,我试过使用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

Classroom.Courses。创建({0},{0}, “section”:getData [i ] [1], “descriptionHeading”:的getData [I] [2], “说明”:的getData [I] [2], “courseMaterialSets”:[{ \t \t \t “标题”:串, “材料”:[{ “driveFile”:{{ \t \t \t \t \t \t “ID”:串, \t \t \t \t \t \t “称号”:字符串, \t \t \t \t \t \t “alternateLink”:字符串, \t \t \t \t \t \t “thumbnailUrl”:字符串, \t \t \t \t \t \t} }, } ] } ] }); } } –

+0

这是我从[课堂文档](https://developers.google.com/classroom/reference/rest/v1/courses#Course)了解到的内容。对不起,双重评论,没有足够的空间。 –

+0

你测试了上面的代码吗?我再次尝试使用格式没有成功。创建类,但没有课程资料。 –

回答

1

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

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

您当然可以从工作表中抽取所有这些数据或使用变量循环访问资源。

+0

谢谢你的回复,我再次尝试使用格式没有成功。创建类,但没有课程资料。 –

+0

当您运行该程序时,您是否捕获并记录任何错误?没有更多的信息,很难确定问题出在哪里。 – Brian

+0

请参阅我的编辑。我在运行该程序时没有收到任何错误。它成功完成并创建教室,但不会将课程资料添加到关于页面。 –

0

这里是我试图成功创建课程的代码,但我也做而不是获取课程材料以附加到创建的Google课堂的“简介”标签。

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那courseMaterialsSets是只读吗???

+0

布赖恩上面说的是正确的,我相信。只提供id参数是不够的,你必须提供JSON对象中的所有参数(我还没有测试过)。该文档的这一部分涉及资源对象,即从现有类中检索信息,这就是为什么它说'只读'。 –

相关问题