我有一个google docs模板,我想用外部数据替换模板中的一些字符串,最好是通过cURL,因为应该进行更改的脚本是一个bash脚本。
我在谷歌应用程序脚本中进行搜索和替换,如下所示,但我不知道如何调用脚本并替换为一些外部数据。
function myFunction() {
var doc = DocumentApp.openById("DOCUMENT_ID");
var body = DocumentApp.getActiveDocument().getBody();
var client = {
name: 'Some name',
address: 'Some address'
};
body.replaceText('{name}', client.name);
body.replaceText('{address}', client.address);
}
更新
我创建了以下google apps脚本:
function doPost(e) {
var body = DocumentApp.openById("JYOfA_Uv5fxLFA84g11H9XsizHo3F7e1FvSs3EG1vvo").getBody();
var client = new Function("return " + e.postData.contents)();
body.replaceText('{name}', client.name);
body.replaceText('{address}', client.address);
return ContentService.createTextOutput("Done.")
}
我正在运行的cURL命令是:
curl -L -d '{"name":"hello","address":"world"}' 'https://script.google.com/macros/s/AKfycbxF_1gddelneCdWCsFcvqT1OgU2zqkjTKSEIulSQfXjfgx1rnY/exec'
Google应用脚本调用的文档基本上包含{name}和{address}信息。
cURL命令给出了无法找到文件的错误。
链接是可访问的,因为那里没有任何秘密。只测试东西。
更新2:
链接到测试文档: https://docs.google.com/document/d/1JYOfA_Uv5fxLFA84g11H9XsizHo3F7e1FvSs3EG1vvo/edit
答案 0 :(得分:0)
以下样本怎么样?我想过根据您的情况使用doPost()
Web应用程序。要使用此样本,请确认以下流程。
{name}
和{address}
放在那里。doPost(e)
)复制并粘贴到脚本编辑器中。 Current web app URL
是curl命令的端点。 Web Apps的详细信息为here。 修改脚本时,必须将Web Apps重新部署为新版本。
function doPost(e) {
var body = DocumentApp.openById("DOCUMENT_ID").getBody();
var client = new Function("return " + e.postData.contents)();
body.replaceText('{name}', client.name);
body.replaceText('{address}', client.address);
return ContentService.createTextOutput("Done.")
}
在Post方法中,可以发送JSON数据。所以我用过这个。 var client = new Function("return " + e.postData.contents)();
用于从接收的字符串JSON数据转换为对象。
curl -L -d '{name: "Some name", address: "Some address"}' 'https://script.google.com/macros/s/#####/exec'
这是一个简单的样本。因此,当您使用它时,请将其修改为您的环境。
如果我误解了你的问题,我很抱歉。