这是带有脚本代码的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 过多。
这可以在Google Apps脚本OAuth服务中修复吗?
答案 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