我们正在寻找一种方法来在我们的网络应用程序的用户上下文(授权)中触发插件中的功能。我们尝试使用 Apps Script Execution API 来触发它。流程是附加组件(应用程序脚本)在我们的 Web 应用程序中注册访问令牌,并且 Web 应用程序使用访问令牌触发执行 API。这是第一次。但问题是,访问令牌的有效期只有几分钟。之后,由于授权失败,Web 应用程序无法通过执行 API 启动功能。
问题:
我们使用执行 API 从用户上下文中的另一个 Web 应用程序触发插件/应用程序脚本功能的方法是否正确?
如果是这样,我们如何避免访问令牌过期?显然,应用程序脚本中没有 API 来“获取刷新令牌”/“刷新令牌”。我们如何刷新令牌以使令牌永远有效(直到用户取消)?
在这种情况下,有什么完全不同的方法会有所帮助吗?
我看到像“PearDeck”、“Form Approvals”、“Form Publisher”等附加组件正在成功地做到这一点(通过用户授权从网络应用程序触发附加功能)。
希望在这个论坛得到一些专家的建议。谢谢
使用的执行 API - 令牌过期的问题
function prepareToken() {
// send to web app
var token = ScriptApp.getOAuthToken();
URLFetchApp.fetch("url?token="+token);
}
function doSomeWorkFromUserContext() {
// impl here
}
POST https://script.googleapis.com/v1/scripts/{scriptId}:run
Request Header
Authorization: Bearer + {token}
Request Body
{
"function": "doSomeWorkFromUserContext"
}
函数 doSomeWorkFromUserContext 应该在调用的所有时间都被调用,但在一段时间后会出现授权错误。