Google脚本文档无法访问错误-创建并尝试用代码打开文档

时间:2019-08-15 15:28:37

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

我有一些旧代码在5年前非常有用,可以使用Google表单并从信息中填充预先设计的模板。我不需要一会儿使用它,但是现在我有一个类似的项目,并且正在尝试使过时的代码恢复活力。我有一个错误,我找不到或无法找到在线答案。请帮忙!

代码的相关部分是:

//创建模板的副本

  var copy = DriveApp.getFileById(docTemplate)
            .makeCopy(docName+' TEST ')
            .getId();

//打开临时文档

  var copyDoc = DocumentApp.openById(copy);

第一部分起作用,在我的Google云端硬盘中创建了文档的副本,并且var copy返回新文档ID的值。

我收到错误消息“无法访问该文档。请稍后再试。(第79行,文件“代码”)”

代码的

第79行是:“ var copyDoc = DocumentApp.openById(copy);”。

我尝试了一些用于打开文件的不同代码,它们都返回相同的错误消息。

3 个答案:

答案 0 :(得分:2)

只是想分享我对这个问题的解决方案。我知道这是一个旧线程,但将来可能会有其他人偶然发现这个线程,他们仍在努力解决这个问题。

我刚才遇到了这个错误。事实证明,克隆并尝试打开的文件是“.docx”文件。上传到谷歌驱动器的 MS word 文件。 DocumentApp API 只能打开 google docs 文件。要解决此问题,只需打开正在克隆的基本文件,然后选择文件 > 另存为 Google 文档。这将创建一个新文件。将其用作新的基础文件。

答案 1 :(得分:1)

这对我有用:

function runOne() {
  var docTemplate='id string';
  var file=DriveApp.getFileById(docTemplate);
  var copy = file.makeCopy(file.getName()+'TEST').getId();
  var copyDoc = DocumentApp.openById(copy);
  copyDoc.getBody().appendParagraph("This is new text.");
  copyDoc.saveAndClose();
}

当然,当脚本通过ID打开文档时,它实际上并不使用用户界面打开它,而是仅在服务器上打开它。但是当我打开它时,一定要确保appendedParagrahp在那里。

答案 2 :(得分:0)

实际上,自从新版本发布以来,您不能只运行脚本...我花了很多时间在此工作。

https://developers.google.com/apps-script/guides/cloud-platform-projects#switching_to_a_different_standard_gcp_project

1您需要创建一个标准项目 2获取ID并将其提供给脚本 3在脚本上启用所需的API(驱动器,文档等) 4在GCP项目上也是如此

完成此操作后,文件开始打开文件。 主要问题是表单(或其他表单)上的触发器无法打开文档以确保安全。这让我很痛苦,因为您现在需要在顶部做一堆其他事情...