google-apps-script - 谷歌应用脚本在调试模式下运行,而不是在运行模式下
问题描述
您好 Google 脚本专家,我是 google 脚本的新手,正在尝试与 Google 文档中的 HTTP POST 相关的内容。
我有一个谷歌应用脚本,它在打开谷歌文档时发送一个发布请求(API)。
function onOpen() {
var ui = DocumentApp.getUi(); // Same variations.
var actDoc = DocumentApp.getActiveDocument();
var docID = actDoc.getId();
var repeater = 0;
var data = {
'bstask': text,
'docid': docID
};
console.log(data);
var options = {
'method' : 'post',
'contentType': 'application/json',
// Convert the JavaScript object to a JSON string.
'payload' : JSON.stringify(data)
};
ui.alert("Sending request with the payload" + data.bstask + " and " + data.docid);
var response = UrlFetchApp.fetch('https://test.com/path', options);
ui.alert("Response is: " + response.getResponseCode());
if (response.getResponseCode() == 200) {
Logger.log(response.getContentText() + response.getAllHeaders());
ui.alert('Yey!! Document refreshed.');
}
else{
ui.alert('Opps!! Document refresh failed.'+ response.getContent());
}
}
此脚本用于向用户提供一个选项,以便在打开或刷新文档时更新文档。当我在调试模式下测试它时,该脚本运行良好并调用 API。但是,当我希望在打开文档时执行此脚本时,它不会调用 API,其余的 UI 提示都可以正常工作。我在这里遗漏了什么或脚本有问题吗?我真的很感激任何帮助!
解决方案
因为简单的触发器会自动触发,而不需要用户授权,所以它们受到几个限制:
- 他们无法访问需要授权的服务。例如,简单触发器无法发送电子邮件,因为 Gmail 服务需要授权,但简单触发器可以使用匿名的语言服务翻译短语。
换句话说,UrlFetchApp.fetch()
打开文档时调用不会执行,因为它需要授权。您也应该能够在执行日志中看到此失败。
推荐阅读
- struct - Rust - 结构可以有一个可变成员吗?
- django - Django中重复的应用程序命名问题而不重命名应用程序
- ios - Obj-C - 在 NSObject 中定义 UIColor 属性?
- spring-boot - 使用 Spring Boot 使用 OpenID 提供程序对 Web 应用程序进行身份验证时出错
- reactjs - 使用 react useEffect 获取问题
- r - 按组选择每次运行零之前的最后一个非零值
- android - 无法解析 Android 应用程序模块的 Gradle 配置。解决 gradle 构建问题和/或重新同步。如何在北极狐 Updt 中解决此问题
- ruby-on-rails - rails c 给出。zsh:权限被拒绝
- python-3.x - 基于 CSV 文件的数组的“int”和“builtin_function_or_method”实例之间不支持“<=”
- node.js - 静态文件与流式 node.js