这是带有脚本代码的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服务中修复此问题吗?
1 回答
您可以在Manifest文件中修改OAuth范围 . 清单文件在GAS编辑器中通过菜单(View> Show Manifest File)访问,然后清单将作为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