2014-07-16 158 views
1

我正在開發RoR應用程序,該應用程序允許用戶使用Google帳戶登錄並從他的某個分析帳戶下載/上傳報告數據。 我使用omniauth-google-oauth2 gem用於Google帳戶的授權,用於與Google Analytics進行互動的google-api-client。 問題是,當我嘗試獲取analytics.management.accounts.list方法的帳戶列表時,將谷歌令牌作爲授權參數之一傳遞,GA響應403 權限不足錯誤。403嘗試獲取Google Analytics數據時權限不足錯誤

我想,我必須讓用戶在授權過程中授予閱讀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) 

回答

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 
相關問題