Google apps script 对Google脚本中函数的HTTP请求
因为我对HTTP请求和Google脚本一点经验都没有,所以我很难理解它 因此,我的问题如下: 我目前正在尝试在我的lua脚本中获取信息,并将其发送到google电子表格。然而,谷歌电子表格保存信息的方式取决于我调用和传递信息的谷歌脚本上的哪个函数 所以,我的问题是:我的lua脚本(此时只允许我访问HTTP请求)如何连接到一个特定的函数(如下面的函数)Google apps script 对Google脚本中函数的HTTP请求,google-apps-script,google-sheets,web-applications,lua,httprequest,Google Apps Script,Google Sheets,Web Applications,Lua,Httprequest,因为我对HTTP请求和Google脚本一点经验都没有,所以我很难理解它 因此,我的问题如下: 我目前正在尝试在我的lua脚本中获取信息,并将其发送到google电子表格。然而,谷歌电子表格保存信息的方式取决于我调用和传递信息的谷歌脚本上的哪个函数 所以,我的问题是:我的lua脚本(此时只允许我访问HTTP请求)如何连接到一个特定的函数(如下面的函数) function callName(name) { // Get the last Row and add the name provide
function callName(name) {
// Get the last Row and add the name provided
var sheet = SpreadsheetApp.getActiveSheet();
sheet.getRange(sheet.getLastRow() + 1,1).setValue([name]);
}
此外,我认为我的脚本也错了,但我更担心的是如何真正建立连接。回答:
您可以将脚本发布为Web应用程序,并使用URL参数向脚本传递所需的信息
更多信息:
从有关web应用程序的Google文档中:
如果为脚本生成用户界面,则可以将脚本发布为web应用程序。例如,允许用户与支持团队成员安排约会的脚本最好以web应用程序的形式呈现,以便用户可以直接从浏览器访问它
但是,即使不构建用户界面,也可以使用此功能通过HTTP请求在工作表上运行脚本
修改脚本:
为了允许脚本接受URL参数,必须首先修改代码,以便对HTTP GET请求进行处理。您可以使用应用程序脚本doGet函数和事件参数e执行此操作:
函数doGete{
callNamee.parameter.name;
}
函数调用名{
//获取最后一行并添加提供的名称
var sheet=电子表格app.getActiveSheet;
sheet.getRangesheet.getLastRow+1,1.setValue[name];
}
设置Web应用程序:
从应用程序脚本用户界面,按照发布>部署为web应用程序。。。菜单项,并在新打开的模式窗口中,选择以下设置:
项目版本:新
以“我是你的”的身份执行应用程序-email@address.here
谁有权访问该应用程序:任何人,甚至匿名
然后单击Deploy。在这里,您将获得一个新的、更小的URL,格式如下:
https://script.google.com/a/your-domain.com/macros/s/some-script-id/exec
提出请求:
剩下的工作现在很简单了——您可以在上一步中向脚本URL发出HTTP请求,但需要提供URL参数,以便为te app提供您希望设置的值的信息
例如,如果要将值设置为数字20,请按如下方式发出get请求:
GET https://script.google.com/a/your-domain.com/macros/s/some-script-id/exec?name=20
注:末尾的?name=20为Web应用程序提供了参数名称,其值为20。doGete函数从e.parameter.name读取该值,并将其发送给callNamename函数进行处理和执行
我希望这对你有帮助
参考资料:
你创建了一个web应用程序还是一个可执行的API?@Cooper,就像我说的,我真的不知道Google脚本是如何工作的,所以我认为没有?我用函数制作了脚本,就是这样,你想从哪里运行这个脚本我可以从电子表格正常运行,但我希望它可以从google界面之外访问,更具体地说是通过Lua Scripty Rafa,我的主要问题是没有意识到,只要我这样发布脚本,它就不能同时作为API和WebApp工作。从我看到的情况来看,我访问的是电子表格,而不是脚本本身。泰!但是,当从外部调用WebApp时,是否可以只在WebApp中执行某个函数,或者我是否必须将逻辑从Lua脚本移动到脚本的doGet函数?