Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 无法在电子表格上创建可安装的触发器_Google Apps Script_Google Sheets_Web Applications_Triggers_Google Forms - Fatal编程技术网

Google apps script 无法在电子表格上创建可安装的触发器

Google apps script 无法在电子表格上创建可安装的触发器,google-apps-script,google-sheets,web-applications,triggers,google-forms,Google Apps Script,Google Sheets,Web Applications,Triggers,Google Forms,我创建了一个以电子表格id、trello列表id、trello api键和用户的trello令牌作为输入的 在获得输入后,Google应用程序脚本在电子表格上创建一个触发器,这样每当有人提交与电子表格链接的Google表单并在指定的trello列表中创建trello卡时,就会执行触发器 最初,我通过创建一个google表单(以及一个google表单)并向脚本提供上面提到的所需输入来测试这个脚本。这工作完全正常,脚本能够成功地在指定的电子表格上创建触发器 function getTrigger(d

我创建了一个以电子表格id、trello列表id、trello api键和用户的trello令牌作为输入的

在获得输入后,Google应用程序脚本在电子表格上创建一个触发器,这样每当有人提交与电子表格链接的Google表单并在指定的trello列表中创建trello卡时,就会执行触发器

最初,我通过创建一个google表单(以及一个google表单)并向脚本提供上面提到的所需输入来测试这个脚本。这工作完全正常,脚本能够成功地在指定的电子表格上创建触发器

function getTrigger(data){

    return ScriptApp.newTrigger("createTrelloCard").forSpreadsheet(data["spreadsheet_key"])
        .onFormSubmit()
        .create();
}
问题是,谷歌表单和谷歌应用程序脚本项目都链接到我的谷歌帐户,因此我可以通过编程方式访问自己的资源。当我试图在其他用户的工作表上创建触发器时,我被禁止这样做

我已将此脚本发布为webapp,执行app权限为Me,并且匿名访问该应用

我使用Postman对脚本进行api调用,当提交创建触发器所需的输入时,我得到一个HTML,上面写着:

我还尝试将执行权限更改为:

但后来得到了这样的回应:

我假设我需要获得用户的许可,才能对他/她的资源设置触发器,但我不确定如何实现任何建议都会得到赞赏

为了完整起见,下面是在电子表格上设置触发器的代码

function getTrigger(data){

    return ScriptApp.newTrigger("createTrelloCard").forSpreadsheet(data["spreadsheet_key"])
        .onFormSubmit()
        .create();
}

这不是你问题的答案,但在创建第二个触发器之前,你应该确保没有使用该名称的触发器。另一方面,你将获得多个触发器。因此,你的webapp用户必须访问电子表格才能创建触发器。我会将此webapp设置为独立的,并将其部署为以用户身份运行,让任何人都可以访问它,当然,当第一次使用它时,他们必须进行授权。嘿@Cooper,该脚本已部署为以用户身份运行的独立webapp,任何人都可以访问,我不确定首次使用时如何请求授权。如果您将“执行脚本”设置为“用户访问web应用”,则他们需要访问脚本列出的所有资源。您是否在每次调用webapp时都设置触发器?如果是这样,那么你就有问题了。为什么你的意思是将输入作为WebApp?为什么要使用WebApp?每次尝试的序列图将有助于澄清谁在呼叫什么。第29行失败的是触发器的创建吗?还是扳机上的呼叫?也许您应该扩展电子表格gs清单以包括触发器创建?