【发布时间】:2020-07-22 21:52:46
【问题描述】:
我正在尝试使用来自连接到 Google 表格的 Google Apps 脚本的 HTTP 请求来触发 Google 云功能。
云功能(在 GCP 上使用虚拟请求进行测试,可行)本质上是获取用户使用 Appsheet 前端提交的工作表的最新条目。我希望在发生新提交时触发它。因此,我使用onChange(e) 触发器来发送请求。这是我目前在 appscript 中的代码。
function onChange(e) {
Logger.log('called');
var url = "https://MY_REGION-MY_PROJECT.cloudfunctions.net/MY_CLOUD_FUNCTION";
const token = ScriptApp.getIdentityToken();
const options = {
headers: {'Authorization': 'Bearer ' + token}
}
const response = UrlFetchApp.fetch(url, options);
Logger.log('Response Code: ' + response.getResponseCode());
}
当提交新的 Appsheet 时,堆栈驱动程序日志给我以下错误(因此调用 onChange(e)):
Exception: Request failed for https://MY_REGION-MY_PROJECT.cloudfunctions.net returned code 401. Truncated server response:
<html><head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>401 Unauthorized</title>
</head>
<body text=#000000 bgcolor... (use muteHttpExceptions option to examine full response)
at onChange(Code:9:32)
我已经查看并遵循了解决方案和 cmets here 和 here,但它们对我帮助不大;也就是说,我已经确保应用脚本连接到我的项目,重新部署了云功能,并将openid添加到清单的范围内。
鉴于它仍然无法正常工作,我想要一些指导。我这里还有什么遗漏吗?
【问题讨论】:
标签: http google-apps-script google-sheets google-cloud-platform triggers