如何提示容器绑定脚本的用户 "review permissions"
How to prompt user of container-bound script to "review permissions"
据我所知 google 如果您尚未授权您的应用程序,应用程序脚本应该会提示您自动审查权限。然而,这并没有发生,我也找不到手动触发可以在 onOpen(e)
.
中使用的提示的方法
我想实现的是我的应用程序在用户尚未授权该应用程序时提示用户查看权限。
我尝试过的:
- 让 GAS 自动检测使用过的示波器。
- 使用
appscript.json
文件手动设置范围。
- 使用
Ui.showModalDialog()
和ScriptApp.getAuthorizationInfo().getAuthorizationUrl()
手动引导用户获取权限。但是,这会导致错误:
Google Apps Script: Exception: You do not have permission to call Ui.showModalDialog.
Required permissions: https://www.googleapis.com/auth/script.container.ui
问题:
您正在使用简单的触发器 (onOpen
)。简单触发器无法访问需要授权的服务。
解决方案:
按照 these steps 手动安装触发器,或以编程方式执行此操作:
function installTrigger() {
ScriptApp.newTrigger("yourOnOpenFunction") // Don't call it onOpen
.forSpreadsheet(SpreadsheetApp.getActive())
.onOpen()
.create();
}
安装触发器时授权
注:
已安装的触发器将 运行 在安装它的帐户下。因此,如果触发器的动作取决于执行者,这不是一个好方法,我建议通过其他方式显示对话框,例如单击按钮或类似方式。
参考:
据我所知 google 如果您尚未授权您的应用程序,应用程序脚本应该会提示您自动审查权限。然而,这并没有发生,我也找不到手动触发可以在 onOpen(e)
.
我想实现的是我的应用程序在用户尚未授权该应用程序时提示用户查看权限。
我尝试过的:
- 让 GAS 自动检测使用过的示波器。
- 使用
appscript.json
文件手动设置范围。 - 使用
Ui.showModalDialog()
和ScriptApp.getAuthorizationInfo().getAuthorizationUrl()
手动引导用户获取权限。但是,这会导致错误:
Google Apps Script: Exception: You do not have permission to call Ui.showModalDialog.
Required permissions: https://www.googleapis.com/auth/script.container.ui
问题:
您正在使用简单的触发器 (onOpen
)。简单触发器无法访问需要授权的服务。
解决方案:
按照 these steps 手动安装触发器,或以编程方式执行此操作:
function installTrigger() {
ScriptApp.newTrigger("yourOnOpenFunction") // Don't call it onOpen
.forSpreadsheet(SpreadsheetApp.getActive())
.onOpen()
.create();
}
安装触发器时授权
注:
已安装的触发器将 运行 在安装它的帐户下。因此,如果触发器的动作取决于执行者,这不是一个好方法,我建议通过其他方式显示对话框,例如单击按钮或类似方式。