谷歌文档的脚本 .makeCopy() 复制时评论没有复制?

3

您好,当复制Google Doc文档时,是否可以同时复制“复制文档”中的注释。因为我已经尝试过使用TEMPLATE_DOC_ID进行复制,其中有许多注释,但是在“复制”中找不到这些注释。我错过了什么吗?还有其他方法吗?谢谢!

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

8

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

在高级谷歌服务中启用Drive API v2

  • 在脚本编辑器中
    • 资源 -> 高级谷歌服务
    • 打开Drive API v2

在API控制台中启用Drive API

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

  • 在脚本编辑器中
    • 资源 -> 云平台项目
    • 查看API控制台
    • 在开始使用时,点击启用API并获取凭据(如密钥)。
    • 在左侧,点击库。
    • 在搜索API和服务中输入“Drive”。然后点击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;
  });
});

注意:

  • 很遗憾,创建时间和修改时间无法更新。因此,日期将变为创建日期。

参考资料:

如果这不是您想要的,请原谅。


@Tanaike 不幸的是,它对幻灯片文档不起作用,我会得到“Anchor is missing required property root.r”错误。 有没有办法在幻灯片中插入注释呢? - Kos
@Kos 谢谢你提供的信息。目前阶段,我无法立即回答解决方案。非常抱歉我的技能不够好。 - Tanaike
@Kos 尽管我尝试了几种方法,但我无法找到关于Google幻灯片锚点结构的信息,也找不到正式文档。非常抱歉我的技能不足。如果您有相关信息,能否请教一下Google幻灯片的结构? - Tanaike
@Tanaike 我已经尝试了这种格式,它可以在幻灯片文档中创建注释,但它并没有与第10张幻灯片绑定:"anchor": "{\"r\":\"2\",\"a\":[{\"page\":{\"p\": 10, \"mp\": 13}}]}"。所以可能谷歌不允许我们向Google幻灯片添加注释。 - Kos
@Kos 是的。虽然在我的环境中,我也使用了“page”并确认添加了评论,但在幻灯片上找不到它。我考虑过“自定义模式”,但是我找不到详细的结构。我想知道Drive API检索到的值是否不能用于添加。 - Tanaike

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接