the*_*een 4 google-apps-script
为什么我的插件要求获得此权限?试图浏览文档,找不到任何东西.
据我所知,当用户不在时,我的应用程序不会运行!(它要求用户在Google表格中选择范围,在自定义UI中按下按钮,然后调用外部API).是否有任何提示我应该寻找什么来查找触发此类权限请求的有问题的代码或配置?
这个答案怎么样?
当您不在时,允许此应用程序运行
当显示上述授权消息时,表示https://www.googleapis.com/auth/script.scriptapp
在项目中使用了使用范围的方法.您可以在文件 - >项目属性 - >范围中查看项目中的范围.特别需要这种范围的方法ScriptApp
.当getProjectTriggers()
,getUserTriggers()
,deleteTrigger()
,newTrigger()
在项目中使用,这样的范围被自动检测.如果您已经注意到在项目中使用了这样的方法,那么本节可能就是一个答案.
如果你已经注意到,这些方法不是在你的项目中使用,请查看本节.
保存GAS项目时,通过自动检测检测项目中使用的范围.这种自动检测也适用于注释掉的方法.此外,即使当每个单词被分开时,也检测到该单词,因为自动检测对特殊单词起作用,如下所述.
ScriptApp.getOAuthToken()
// .... do something
// newTrigger <--- this is put as a comment
Run Code Online (Sandbox Code Playgroud)
当上面的脚本在项目中时,自动检测表明这https://www.googleapis.com/auth/script.scriptapp
是必需的.但在此示例中,ScriptApp.getOAuthToken()
不需要https://www.googleapis.com/auth/script.scriptapp
.
如果要确认是否需要使用此类作用域的授权来运行脚本,可以使用"清单"来执行此操作.最近,"清单"被添加到GAS项目中.使用"清单",可以停止自动检测范围.通过这种方式,您可以了解检测到的范围是否实际上是项目所需的.为了确认这一点,请执行以下流程.
appsscript.json
出现.appsscript.json
以下内容中.默认appsscript.json
是
{
"timeZone": "### your timezone ###",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER"
}
Run Code Online (Sandbox Code Playgroud)
为此,请按如下方式添加复制的范围.请保存这个.
{
"timeZone": "### your timezone ###",
"dependencies": {
},
"exceptionLogging": "STACKDRIVER",
"oauthScopes": [
"https://www.googleapis.com/auth/script.scriptapp",
"scope2",
"scope3",
...
]
}
Run Code Online (Sandbox Code Playgroud)
添加后oauthScopes
,首先请确认您的脚本是否正常.然后,https://www.googleapis.com/auth/script.scriptapp
从中删除oauthScopes
,然后再次运行.此时,如果出现错误,则表示错误行使用的范围https://www.googleapis.com/auth/script.scriptapp
.
Allow this application to run when you are not present
无关https://www.googleapis.com/auth/script.scriptapp
.
https://www.googleapis.com/auth/script.scriptapp
未包括,则在添加范围后appsscript.json
,请通过逐个删除范围来确认错误行.如果这对你没用,我很抱歉.
归档时间: |
|
查看次数: |
722 次 |
最近记录: |