我正在为我的同事制作一个仪表板,其中显示了来自 Google Analytics 的一些统计数据以及其他一些统计数据。为了访问 Analytics 数据,我使用 OAuth2。OAuth2 需要一个范围与身份验证请求一起发送,以便获取访问令牌。我在 API 控制台中创建了一个可以访问 Analytics 的客户端 ID,并在初始化程序中指定范围,如下所示:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, ENV['ADMIN_DASHBOARD_GOOGLE_CLIENT_ID'], ENV['ADMIN_DASHBOARD_GOOGLE_CLIENT_SECRET'], { access_type: 'online', approval_prompt: '', scope: 'http://gdata.youtube.com,userinfo.email,userinfo.profile,analytics.readonly' }
end
这使用了omniauth-google-oauth2
gem,以及我在某处的示例中找到的范围。但是,对于我的实现,我认为这个范围很奇怪。而不是http://gdata.youtube.com,userinfo.email,userinfo.profile,analytics.readonly
我想使用https://www.googleapis.com/auth/analytics.readonly
,但更改为该范围会导致请求返回invalid_credentials
。指定只需要访问分析数据的正确方法是什么?