独立脚本无法写入文档

时间:2018-08-24 16:38:23

标签: google-apps-script google-docs

我正在尝试使用Webapp。我的示例代码非常简单。我从CNN中读取了内容并将其发布到我的webapp网址中。

但是,我想将结果文本保存到文档中,以便可以在浏览器中查看它。我的脚本包含在下面。

function doPost(e) {
  var body = e.postData.contents.toString();
  DocumentApp.openById('1ZvbBqQpBbi4NeA604bMOJRSWiEgNtn_09qFaIVObUZo').getBody().clear();
  DocumentApp.openById('1ZvbBqQpBbi4NeA604bMOJRSWiEgNtn_09qFaIVObUZo').getBody().appendParagraph(body);
  return ContentService.createTextOutput(body);
}

function postData(){
  var url = ScriptApp.getService().getUrl();
  var page = UrlFetchApp.fetch('https://edition.cnn.com/').getContentText();
  var pageBlob = Utilities.newBlob(page)
  var response = UrlFetchApp.fetch('https://script.google.com/macros/s/<some id>/exec', {
    'method' : 'post',
    'payload' : pageBlob
  });
  Logger.log(response)
}

问题是开头为DocumentApp的2行。如果我运行postData函数,它将返回一些HTML,其中包含:

  

“无法访问该文档。请稍后重试”

,并且都不执行任何行。换句话说,文档甚至不清晰。

如果我在第二行注释掉,则文档确实清除。如果我注释掉第一行,则文档中什么也不会发生,并且会收到相同的错误消息。

我本以为如果是权限问题,我将无法清除该文档。我在做什么错了?

编辑:更多信息:

如果我将主体替换为"hello world",它将起作用。因此,body变量有一些它不喜欢的东西。

1 个答案:

答案 0 :(得分:1)

好,我发现了问题。如果我加载yahoo.com而不是cnn,则效果很好。 CNN的3倍-超过1.5Mb。这似乎是字符长度问题。