Google Apps脚本中的"允许此应用程序在您不在时运行"

the*_*een 4 google-apps-script

为什么我的插件要求获得此权限?试图浏览文档,找不到任何东西.

我得到的许可请求

据我所知,当用户不在时,我的应用程序不会运行!(它要求用户在Google表格中选择范围,在自定义UI中按下按钮,然后调用外部API).是否有任何提示我应该寻找什么来查找触发此类权限请求的有问题的代码或配置?

Tan*_*ike 6

这个答案怎么样?

1.快速确认

当您不在时,允许此应用程序运行

当显示上述授权消息时,表示https://www.googleapis.com/auth/script.scriptapp在项目中使用了使用范围的方法.您可以在文件 - >项目属性 - >范围中查看项目中的范围.特别需要这种范围的方法ScriptApp.当getProjectTriggers(),getUserTriggers(),deleteTrigger(),newTrigger()在项目中使用,这样的范围被自动检测.如果您已经注意到在项目中使用了这样的方法,那么本节可能就是一个答案.

2.调查

如果你已经注意到,这些方法不是在你的项目中使用,请查看本节.

保存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项目中.使用"清单",可以停止自动检测范围.通过这种方式,您可以了解检测到的范围是否实际上是项目所需的.为了确认这一点,请执行以下流程.

  1. 在脚本编辑器上.
  2. 文件 - >项目属性 - >范围
  3. 复制当前范围.
  4. 查看 - >显示清单文件
    • appsscript.json 出现.
  5. 请将复制的范围添加到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,请通过逐个删除范围来确认错误行.

参考文献:

如果这对你没用,我很抱歉.