【发布时间】:2020-07-07 23:58:50
【问题描述】:
我正在使用 Google Apps 脚本更改多个 Google 课堂中的几个主题的名称。我使用Classroom.Courses.Topics.patch() 仅更改主题的“名称”值,但当我查看教室时,我的脚本没有任何更改。
这是一个示例:我有两个教室(课程 ID 为“100000000000”和“100000000001”)。在每个教室中,我有三个主题(主题名称“topic1”、“topic2”和“topic3”)。我想在两个教室中将前两个主题的名称分别更改为“newtopic1”和“newtopic2”。
我怀疑我做更新掩码的方式可能有问题,但我已经尝试重新排序,但我仍然无法让它去......也可能是我的嵌套循环?
function updateTopicNames() {
var courseIds = ['100000000000','100000000001'];
var topicNamesOld = ['topic1','topic2'];
var topicNamesNew = ['newtopic1', 'newtopic2'];
for (var i = 0; i < courseIds.length; i++) {
var topics = Classroom.Courses.Topics.list(courseIds[i]).topic;
var topicObj = topics.reduce((o, e) => Object.assign(o, {[e.name]: e.topicId}), {});
for (var j = 0; j < topicObj.length; j++) {
for (var k = 0; k < topicNamesNew.length; k++) {
var topicId = topicObj[topicNamesOld[j]];
var newName = {'name':topicNamesNew[k]};
var extra = {'updateMask':'name'};
var exec = Classroom.Courses.Topics.patch(newName, topicId, courseIds[i], extra);
}
}
}
}
我查看了courses.topics.patch API,但没有更新掩码实现的示例可供我推断。
我尝试从其他 .patch() 事物的代码引导:StudentSubmissions.Patch UpdateMask Error 和 How to change course owner using Classroom.Courses.patch(),但是当我尝试将这些代码转换为 Topics.patch() 时,有些东西不起作用。
【问题讨论】:
标签: google-apps-script google-classroom