我正在尝试构建一个Web应用程序,该应用程序将从模板创建Google文档,并使用用户提供的数据填充该文档。使用文档中的Google快速入门示例,我可以成功授权和访问Google云端硬盘文件系统。现在,我需要以编程方式打开一个模板Google文档(甚至从头开始创建一个)并添加数据。
使用App Script的文档服务(DocumentApp
类)可以很容易地做到这一点。所以我可以做类似的事情:
function createDoc(contentArray) {
var doc = DocumentApp.create('Sample Document');
var body = doc.getBody();
var rowsData = contentArray; // data submitted with HTML form passed as arg
body.insertParagraph(0, doc.getName())
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
table = body.appendTable(rowsData);
table.getRow(0).editAsText().setBold(true);
}
在独立的应用脚本中,并成功在Google云端硬盘上创建新的Google文档。我不知道如何从外部Web应用程序执行此应用程序脚本。有没有办法做到这一点,还是我需要找到一种仅使用Drive API创建Google文档(并添加内容)的方法?
编辑:
这是我的网络应用发出的GET请求:
var gurl = "https://script.google.com/macros/s/AKfycbwMHKzfZr1X06zP2iEB4E8Vh-U1vGahaLjXZA1tk49tBNf0xk4/exec";
$.get(
gurl,
{ name: "john", time: "2pm",},
function(data) {
console.log(data);
},
"jsonp"
)
这是我的doGet()
:
function doGet(e) {
var result = "";
var name = e.parameter.name;
Logger.log(name);
try {
result = "Hello " + name;
} catch (f) {
result = "Error: " + f.toString();
}
result = JSON.stringify({
"result": result
});
var doc = DocumentApp.create('ballz3');
var body = doc.getBody();
var rowsData = [['Plants', 'Animals'], ['Ficus', 'Goat'], ['Basil', 'Cat'], ['Moss', 'Frog']];
body.insertParagraph(0, doc.getName())
.setHeading(DocumentApp.ParagraphHeading.HEADING1);
table = body.appendTable(rowsData);
table.getRow(0).editAsText().setBold(true);
Logger.log('DOc Name: ' + doc.getName());
return ContentService
.createTextOutput(e.parameter.callback + "(" + result + ")")
.setMimeType(ContentService.MimeType.JAVASCRIPT);
}
答案 0 :(得分:0)
为了从外部位置(如Web应用程序)运行脚本,您需要进行一些设置并使用Script API。下面提供的文档提供了一个很好的示例,说明如何从外部运行脚本。
此外,您可以直接使用这些API,而OAuth之类的服务则可以节省一些时间并使代码更简单,从而直接使用这些API。使用OAuth可以为您提供简单的API请求。要使用它:
结果请求如下所示:
获取/ drive / v3 / files HTTP / 1.1主机:www.googleapis.com内容长度: 0授权:不记名[您的代币]
在它下面,您将看到服务器对请求的响应。
文档URL:https://developers.google.com/apps-script/api/how-tos/execute