403尝试获取Google Analytics数据时权限不足错误

时间:2014-07-16 10:53:48

标签: ruby-on-rails ruby oauth google-api google-analytics-api

我正在开发RoR应用程序,该应用程序允许用户使用Google帐户登录并从其中一个分析帐户下载/上传报告数据。 我使用 omniauth-google-oauth2 gem进行授权,使用Google帐户和 google-api-client 进行与Google Analytics的互动。 问题是,当我尝试使用 analytics.management.accounts.list 方法获取帐户列表时,将Google令牌作为授权参数之一传递,GA以403 权限不足进行响应错误。

我想,我必须让用户授权在授权过程中阅读Google Analytics数据。我怎么能这样做?

我已经阅读了很多相关问题,但没有找到解决我确切问题的方法。

以下是代码:

require 'google/api_client'

client = Google::APIClient.new(:application_name => 'something you like', :application_version => '1')

client.authorization.access_token = 'HERE_GOES_TOKEN'

ga = client.discovered_api('analytics', 'v3')

client.execute(:api_method => ga.management.accounts.list)

1 个答案:

答案 0 :(得分:4)

解决了问题!我必须在OAuth配置中编写适当的范围。

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :google_oauth2, PROVIDER_KEY, PROVIDER_SECRET,
  {
    :scope => "email, profile, https://www.googleapis.com/auth/analytics, https://www.googleapis.com/auth/analytics.edit, https://www.googleapis.com/auth/analytics.manage.users, https://www.googleapis.com/auth/analytics.readonly",
  }
end