google-apps-script - Google Doc .makeCopy() 的脚本没有复制评论?

标签 google-apps-script google-drive-api google-docs

您可以在复制 Google Doc 文档时也复制“复制文档”中的评论。因为我已经尝试使用有很多评论的 TEMPLATE_DOC_ID 进行此操作,但我在“复制”中找不到评论.我错过了什么?这是另一种方法?谢谢!

//Make a copy of the template file
        var documentId = DriveApp.getFileById(TEMPLATE_DOC_ID).makeCopy().getId();

最佳答案

很遗憾,makeCopy() 复制的 Google 文档不包含注释。因此,需要在复制文件后将评论和回复插入到复制的文件中。为了实现这一点,请在高级 Google 服务和 API 控制台中启用 Drive API。

在高级 Google 服务中启用 Drive API v2

  • 在脚本编辑器上
    • 资源 -> 高级 Google 服务
    • 开启 Drive API v2

Enable Drive API at API console

关于 Drive API,在您的环境中,这可能已经启用。

  • 在脚本编辑器上
    • 资源 -> 云平台项目
    • 查看 API 控制台
    • 在开始时,点击启用 API 并获取 key 等凭据。
    • 点击左侧的库。
    • 在搜索 API 和服务时,输入“驱动器”。然后点击 Drive API。
    • 点击启用按钮。
    • 如果 API 已经开启,请不要关闭。

示例脚本:

var documentId = DriveApp.getFileById(TEMPLATE_DOC_ID).makeCopy().getId();

// Added script
var commentList = Drive.Comments.list(TEMPLATE_DOC_ID);
commentList.items.forEach(function(item) {
  var replies = item.replies;
  delete item.replies;
  var commentId = Drive.Comments.insert(item, documentId).commentId;
  replies.forEach(function(reply) {
    Drive.Replies.insert(reply, documentId, commentId).replyId;
  });
});

注意:

  • 很遗憾,无法更新创建时间和修改时间。所以日期成为创建日期。

引用资料:

如果这不是你想要的,我很抱歉。

关于google-apps-script - Google Doc .makeCopy() 的脚本没有复制评论?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50877531/

相关文章:

javascript - 如何从 Google Apps 脚本项目属性中存储和检索对象?

google-sheets - 如何使用 Google Spreadsheets API 删除电子表格文件?

google-apps-script - (Google 文档)是否有可能保护某些细胞不移动?

google-apps-script - 在 replaceText() 中格式化

google-apps-script - 自动将带有 Gmail 标签的电子邮件转换为 PDF 并将其发送到电子邮件地址

google-apps-script - 如何强制 code.js 函数出错?

javascript - 单引号 Google 脚本的串联

javascript - 使用javascript更新Google Drive上的文件内容

google-drive-api - 在 Google Drive SDK 中,如何复制文件夹?

google-docs - 将数字作为字符串粘贴到谷歌文档中