当前位置: 首页 > 知识库问答 >
问题:

如何更改主题名称classroom.courses.topics.patch()

容远
2023-03-14

我正在使用谷歌应用程序脚本更改几个谷歌课堂中的几个主题的名称。我使用classroom.courses.Topics.patch()只更改主题的'name'值,但当我查看教室时,我的脚本没有更改任何内容。

这里有一个例子:我有两个教室(课程ID'100000000000'和'100000000001')。在每个教室里,我有三个主题(主题名为'Topic1'、'Topic2'和'Topic3')。我想把前两个主题的名称分别改为'NewTopic1'和'NewTopic2',在两个教室都是这样。

我怀疑我做更新掩码的方式可能有问题,但我已经试着重新排序了,但我还是不能让它继续运行...也可能是我的嵌套for循环

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);
      }
    }
  }
}

我尝试从其他.patch()东西的代码引导:StudentSubmissions.patch UpdateMask错误以及如何使用ClassRoom.Courses.patch()更改课程所有者,但当我尝试将这些代码转换为Topics.patch()时,有些东西不起作用。

共有1个答案

东方栋
2023-03-14

我相信你的情况如下。

  • TopicNamesold的索引与TopicNamesNew的索引相对应。
  • 在脚本中,topicobj不是数组。因此不需要使用for循环。
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 k = 0; k < topicNamesNew.length; k++) {
      var topicId = topicObj[topicNamesOld[k]];
      var newName = {'name': topicNamesNew[k]};
      var extra =  {'updateMask':'name'};
      var exec = Classroom.Courses.Topics.patch(newName, courseIds[i], topicId, extra);
    }
  }
}
    null
    null
 类似资料:
  • 我尝试这样更改我的AndroidManifest: 但现在这个名字到处都是(在主页和应用程序的标题上)“[T]ime[T]racking[M]anager”。我怎么能给他们起不同的名字呢?

  • 问题内容: 我们在同一个域的后面有两个项目(在它们前面的zuul代理),都使用spring会话项目,会话保存在redis中。 这两个会话应该是不同的,但似乎它们正在覆盖名为“ SESSION”的cookie中的彼此id。如何更改名字?有没有简单的方法可以通过配置来做到这一点? 问题答案: 好的,我没有在配置中找到任何属性来更改它。我深入研究了Spring会话的源代码,最后做了: “ SESSION

  • 问题内容: 我通过重命名应用程序的文件夹,导入及其所有引用(模板/索引)来更改了Django中应用程序的名称。但是现在当我尝试运行时出现此错误 如何调试和解决此错误?有什么线索吗? 问题答案: 请按照以下步骤在Django中更改应用的名称: 重命名项目根目录中的文件夹 更改为你的应用程序的任何引用他们的依赖关系,即应用程序的文件。 使用以下命令编辑数据库表: 同样,如果你有模型,则必须重命名模型表

  • 我们开发了一个文档管理应用程序。我们应用程序中的用户需要签署文档。由于他们可能没有DocuSign帐户,我们使用我们的DocuSign帐户为他们发送签名请求。 例如,A和B都是我的应用程序中的用户。A向B发送文档签名请求,我的应用程序创建信封,B作为嵌入收件人,然后,我获取签名URL并通过我的应用程序将其发送给B。之后,B打开我的应用程序并通过嵌入式视图对文档进行签名。 因为我们使用我的开发人员帐

  • 问题内容: 我有一个小项目,必须响应一些文件。我知道使用会是一个更好的决定,但是文件很小。 我程序的一部分: 该行返回的文件名类似,没有任何格式或类似形式。已下载的文件名始终相同,并不取决于文件的真实名称。文件的真实名称是。如何返回带有正确文件名的文件? 问题答案: 你需要为浏览器设置HTTP标头以使用正确的文件名。 你可以通过设置参数来设置此标头。然后从传入的文件对象中获取文件名。使用参数显式设

  • 问题内容: 我正在使用python + BeautifulSoup解析HTML文档。 现在,我需要用替换HTML文档中的所有元素。 如何更改标签名称,而不更改文档中的其他任何内容? 问题答案: 我不知道您的访问方式,但以下内容对我有用: 命令输出为: 如您所见,变成了。文件中的其他内容都没有改变。我正在使用Python 2.6和BeautifulSoup 3.2.0。 如果您有多个,并且想要全部更