403尝试获取Google Analytics数据时权限不足错误
我正在开发RoR应用程序,允许用户使用Google帐户登录并从他的某个分析帐户下载/上传报告数据。 我使用omniauth-google-oauth2 gem进行授权,使用Google帐户和google-api-client与Google Analytics进行互动。 问题是,当我尝试使用analytics.management.accounts.list方法获取帐户列表时,将google令牌作为授权参数之一传递,GA会响应403 Insufficient permissions错误。
我想,我必须让用户在授权过程中阅读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)
解决了这个问题! 我必须在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
- 为什么Google的自定义搜索API说我在使用Ruby客户端时缺少访问令牌?
- Google OAuth 2 redirect_uri_mismatch – OmniAuth Rails应用
- 未创建Rails + Google Calendar API事件
- 使用Ruby中的Google Apps API和服务帐户时出现问题
- 如何从服务帐户谷歌驱动器api下载文件?
- Google-api-client要求访问令牌
- 为什么Google API无论输入设置了+01偏移量?
- 在Rails中,是否可以限制谁可以使用API登录谷歌?
- 访问Google Plus联系人google-api-ruby-client和omniauth-google-oauth2