我正在尝试使用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变量有一些它不喜欢的东西。
答案 0 :(得分:1)
好,我发现了问题。如果我加载yahoo.com而不是cnn,则效果很好。 CNN的3倍-超过1.5Mb。这似乎是字符长度问题。