Google文档:使用cURL搜索+替换外部数据
我有一个谷歌文档模板,我想用外部数据替换模板中的一些字符串,最好是通过cURL,因为应该做更改的脚本是bash脚本。Google文档:使用cURL搜索+替换外部数据
我有搜索和替换在谷歌应用程序脚本完成像一个下面,但我不知道如何调用脚本和取而代之的一些外部数据。
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);
}
UPDATE:
我创建了下面的谷歌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 apps脚本调用基本上具有{name} a的信息nd {地址}。
cURL命令给我错误,找不到文件。
链接是可访问的,因为那里没有任何秘密。只测试东西。
更新2:
链接到测试文档: https://docs.google.com/document/d/1JYOfA_Uv5fxLFA84g11H9XsizHo3F7e1FvSs3EG1vvo/edit
怎么样下面的示例?我想为您的情况使用Web Apps的doPost()
。为了使用这个样本,请确认以下流程。
流量:
- 准备谷歌文档作为一个样本。请把
{name}
和{address}
放在那里。 - 将示例脚本(
doPost(e)
)复制并粘贴到脚本编辑器中。 - 部署Web应用程序
- 在脚本编辑器
- 发布
- 部署为Web应用程序
- 创建新的项目版本
- 在执行应用程序为,选择“帐户“
- 谁有权访问该应用,请选择”任何人,甚至匿名“
- 点击 “部署”
- 复制 “当前Web应用程序URL”
- 单击 “确定”
- 部署为Web应用程序
- 请把你的端点到样品curl命令并运行它。
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命令:
curl -L -d '{name: "Some name", address: "Some address"}' 'https://script.google.com/macros/s/#####/exec'
注:
这是一个简单的示例。所以,当你使用这个,请修改这个到你的环境。
如果我误解了你的问题,我很抱歉。
对不起,回复迟!它看起来像我想要的解决方案,虽然有些东西似乎不对,但我得到了“Google Drive - 无法找到该页面”。我检查了网址,它是正确的。将尝试看看我做错了什么。 – Kevin
@Kevin我认为你的情况有2点。一个是在部署Web Apps之后,如果脚本被修改了,Web Apps必须作为新版本重新部署。你可以看到如何从我的答案中部署它。另一个是最近,部署Web应用程序时,有时会返回此类错误。那时,我通过用脚本重新打开文档来避免错误。我不知道你的情况对我来说是否一样。但你可以试试吗?如果这些不是解决方案,我很抱歉。那时,你可以在你的共享脚本中显示你的整个脚本吗? – Tanaike
@Kevin然后,我对你的情况有个疑问。你的错误是来自curl的回应吗? – Tanaike
请您澄清一下问题。你想*通过类似cURL的函数从脚本中访问你的外部数据源?或者,你是否试图通过cURL从外部脚本中调用绑定的应用程序脚本? –
我想从类似cURL的功能中传递外部数据,并将其传递给谷歌文档:) – Kevin