Google Sheets权限授权

Cod*_*per 1 google-sheets google-apps-script

假设我按下了一个需要我在谷歌表格中授权的按钮,我如何才能看到我授予脚本执行的所有权限,以便我可以撤销它们?据我所知,这些只是本地处决。

Tan*_*ike 5

  • 您想要检索 GAS 项目允许的所有范围。
  • 您想要撤销允许的范围。
  • 您希望使用 Google Apps 脚本来实现此目的。

如果我的理解是正确的,这个答案怎么样?

1. 检索 GAS 项目允许的所有范围:

当允许使用范围时,这会反映到访问令牌中。使用此功能,您可以从访问令牌检索 GAS 项目允许的所有范围。示例脚本如下。

示例脚本:

var url = "https://oauth2.googleapis.com/tokeninfo?access_token=" + ScriptApp.getOAuthToken();
var res = JSON.parse(UrlFetchApp.fetch(url).getContentText());
Logger.log(res.scope)
Run Code Online (Sandbox Code Playgroud)
  • 运行该脚本时,可以检索GAS项目的所有授权范围。
  • 大约url,也可以用var url = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=" + ScriptApp.getOAuthToken()

2、撤销许可范围:

当GAS项目的范围被授权时,可以在“具有帐户访问权限的第三方应用”中看到该项目。例如,当项目被手动删除时,授权范围将被撤销。这意味着访问令牌已被撤销。这样,当GAS项目中的脚本运行时,就会再次打开授权界面。使用此功能,您可以使用以下脚本撤销访问令牌。

示例脚本:

var url = "https://accounts.google.com/o/oauth2/revoke?token=" + ScriptApp.getOAuthToken();
var res = UrlFetchApp.fetch(url);
Logger.log(res.getResponseCode());
Run Code Online (Sandbox Code Playgroud)
  • 当您运行脚本时,当res.getResponseCode()is时200,这意味着访问令牌已被撤销。
    • 此时,您可以在“具有帐户访问权限的第三方应用”页面看到 GAS 项目已被删除。
    • 当GAS项目中的脚本运行时,您可以看到授权屏幕再次显示。

参考:

如果我误解了你的问题并且这不是你想要的结果,我深表歉意。