比方说,我在Google表格中按下了需要获得我授权的按钮,如何查看我授予脚本执行的所有权限,以便我可以撤销它们?我了解这些只是本地处决。
allenyu58 回答:Google表格权限授权 示例脚本:示例脚本:
- 您要检索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)
- 运行脚本时,可以检索GAS项目的所有授权范围。
- 关于
url
,您也可以使用var url = "https://www.googleapis.com/oauth2/v1/tokeninfo?access_token=" + ScriptApp.getOAuthToken()
。
2。撤消允许的范围:
授权合并范围用于GAS项目时,可以在"Third-party apps with account access"上看到该项目。例如,当手动删除项目时,授权范围将被吊销。这意味着访问令牌已被吊销。这样,当运行GAS项目中的脚本时,授权屏幕将再次打开。使用此功能,您可以使用以下脚本撤销访问令牌。
示例脚本:
var url = "https://accounts.google.com/o/oauth2/revoke?token=" + ScriptApp.getOAuthToken();
var res = UrlFetchApp.fetch(url);
Logger.log(res.getResponseCode());
- 运行脚本时,当
res.getResponseCode()
为200
时,表示访问令牌已被吊销。- 这样,您可以在“具有帐户访问权限的第三方应用程序”页面上看到GAS项目已被删除。
- 运行GAS项目中的脚本时,您可以看到再次显示了授权屏幕。
参考:
- Revoking a token
- OpenID Connect
- Remove Third-party Apps with Account Access using Google Apps Script
如果我误解了您的问题,而这不是您想要的结果,我深表歉意。