Google Apps脚本中的范围要求过高

时间:2015-02-02 09:11:22

标签: google-apps-script google-analytics google-oauth

这是带有脚本代码的a custom Google Sheet

var GAaccountsList = Analytics.Management.Accounts.list();
var upload = Analytics.Management.Uploads.uploadData('accountId', 'webPropertyId', 'customDataSourceId')

如果提供 https://www.googleapis.com/auth/analytics 范围,则此代码应该正常运行。

但相反,它还要求 https://www.googleapis.com/auth/analytics.readonly 过多。 enter image description here

这可以在Google Apps脚本OAuth服务中修复吗?

1 个答案:

答案 0 :(得分:2)

您可以在清单文件中修改OAuth范围。清单文件可通过菜单(“查看”>“显示清单文件”)在GAS编辑器中进行访问,然后清单将以appscript.json的形式显示在文件列表中。您可以从此文件中删除Dependencies和oauthScopes部分,然后,当您的脚本尝试进行Google调用时,将会收到一条错误消息,指出需要哪些作用域(在Stackdriver Logging中)。您可以通过这种方式一次添加一个范围,但是请确保您的每个Google函数都被调用,否则您可能会错过一个范围。

请注意,删除“依赖关系”部分可能会有其他副作用(例如,删除对库的访问)。根据我的经验,在Dependencies / enableAdvancedServices部分中显示了一个过多的作用域,因此我不得不从那里删除它,并将不那么允许的作用域添加到oauthScopes部分。

参考: https://developers.google.com/apps-script/concepts/scopes

https://developers.google.com/identity/protocols/googlescopes

Google Oauth removing scopes from access

How to narrow down the auth/drive scope for a google apps script?

https://developers.google.com/apps-script/concepts/manifests