如果用户删除了附加组件的权限,则停止可安装的触发器

Stop installable triggers if user removed permissions for the add-on

如果用户在页面 Apps with access to your account 中删除了附加组件的权限,如何停止附加组件的所有可安装触发器?

对于独立脚本,用户将收到一封 "Summary of failures for Google Apps Script" 电子邮件。但对于附加组件开发人员而言,附加组件只会在 Stackdriver Logging 中不断抛出错误 "The script does not have permission to get the active user's identity."。

请注意,这种情况不同于卸载或禁用加载项,因为可以通过测试事件对象的 authMode 来停止触发器。示例:

function onEditCustom(e) {
    if(e.authMode != ScriptApp.AuthMode.FULL) return;

    // code...
}

如果用户(触发器的创建者)删除了脚本的权限,可安装的触发器有两种结果:

Standalone script or bound script

触发器的所有者将收到一封来自apps-scripts-notifications@google.com的电子邮件,列出脚本抛出的异常,在没有权限的情况下,消息是:"Authorization is required to perform that action."

Add-ons

如问题中所述,“”。

除了评论之外,Google 关于 Installable Triggers - Limitations 的 Apps 脚本文档,“代码 运行 时加载项不会自动向用户发送电子邮件由可安装的触发器引发异常。开发人员有责任优雅地检查和处理失败情况。"