有没有一个脚本可以删除Google表格上已解决的评论?

问题描述 投票:0回答:1

我正在尝试添加一个脚本来删除 Google 表格上已解析的评论,但我不断收到此错误消息:“GoogleJsonResponseException:对drive.comments.list的API调用失败并出现错误:此方法需要“fields”参数。”我尝试根据此论坛的其他建议添加“字段”参数,但似乎没有一个起作用。这是我当前不起作用的代码:

function deleteResolvedComments() {
  const id = SpreadsheetApp.getActiveSpreadsheet().getId();
  const comments = Drive.Comments.list(id).items;
  comments.forEach(comment => {
    if(comment.status === 'resolved'){
      Drive.Comments.remove(id, comment.commentId);
    }
  });
}

我尝试了多种不同的方式添加字段,但不断返回相同的错误消息。

google-sheets google-apps-script google-cloud-platform field
1个回答
0
投票

修改要点:

  • 从您的显示脚本来看,我认为您的脚本适用于 Drive API v2。但是,从您的错误消息
    GoogleJsonResponseException: API call to drive.comments.list failed with error: The 'fields' parameter is required for this method.
    来看,我猜测您正在启用 Drive API v3。因为现阶段,Advance Google服务启用Drive API时,默认使用版本3。这可能与此线程有关。如果我的猜测是正确的,就会出现这样的错误。

本例有以下2种修改模式。

模式1:

请将 Drive API 版本从 v3 更改为 v2。这样,你的脚本就可以工作了。

模式2:

当您使用Drive API v3时,请按如下方式修改您的脚本。

function deleteResolvedComments() {
  const id = SpreadsheetApp.getActiveSpreadsheet().getId();
  const comments = Drive.Comments.list(id, { fields: "*" }).comments;
  comments.forEach(comment => {
    if (comment.resolved === true) {
      Drive.Comments.remove(id, comment.id);
    }
  });
}

此修改后的脚本可与 Drive API v3 一起使用。

参考:

© www.soinside.com 2019 - 2024. All rights reserved.