要解决“Apps Script Web App权限将被自动撤销”的问题,您可以尝试以下解决方案:
onOpen
的函数,该函数将在用户打开Web App时运行。在该函数中,您可以使用ScriptApp
服务的getAuthorizationInfo()
方法来检查用户是否已授予所需的权限。如果权限被撤销,您可以通过ScriptApp
服务的setAuthorizationInfo()
方法重新请求权限。以下是一个示例代码:
function onOpen() {
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
if (!authInfo.getAuthorizationStatus()) {
// 权限被撤销,重新请求权限
var authUrl = authInfo.getAuthorizationUrl();
SpreadsheetApp.getUi().alert('您需要重新授权访问Web App。点击确定后将打开授权页面。');
var response = UrlFetchApp.fetch(authUrl);
Logger.log(response.getContentText());
}
}
ScriptApp
服务的getAuthorizationInfo()
方法来检查用户是否已授予所需的权限。如果权限被撤销,您可以将用户重定向到授权页面。以下是一个示例代码:
function requestAuthorization() {
var authInfo = ScriptApp.getAuthorizationInfo(ScriptApp.AuthMode.FULL);
if (!authInfo.getAuthorizationStatus()) {
// 权限被撤销,重定向到授权页面
var authUrl = authInfo.getAuthorizationUrl();
window.location.href = authUrl;
}
}
在您的Web App页面中添加一个按钮或链接,并调用requestAuthorization()
函数以请求重新授权。
请注意,这些示例代码仅适用于检查和重新请求完整的授权模式(ScriptApp.AuthMode.FULL
)。如果您的Web App只需要部分授权模式(例如只读访问),请相应地调整代码。