Google文档的脚本.makeCopy()是否未复制注释?

ana*_*ria 3 google-docs google-apps-script

复制Google Doc文档以同时复制“复制文档”中的注释时,您好是可能的。因为我尝试使用TEMPLATE_DOC_ID进行了此操作,该注释包含很多注释,但是我在“复制”中找不到注释。缺少什么?这是另一种方法?谢谢!

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

Tan*_*ike 6

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

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

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

在API控制台上启用Drive API

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

  • 在脚本编辑器上
    • 资源->云平台项目
    • 查看API控制台
    • 在“入门”中,单击“启用API”并获取凭据(例如密钥)。
    • 在左侧,单击库。
    • 在“搜索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;
  });
});
Run Code Online (Sandbox Code Playgroud)

注意 :

  • 不幸的是,创建时间和修改时间无法更新。因此,日期变为创建日期。

参考文献:

如果这不是您想要的,对不起。