我正在使用Rails + Garb Gem(Sija分支)+ omniauth-google-oauth2 Gem和我可以使用Google Analytics API成功進行身份驗證,並提取我們的應用在使用時生成的數據用戶登錄,例如:無法獲取谷歌分析API的oAuth2訪問令牌
Garb::Session.login('USERNAME', '<PASSWORD>')
我就可以使用裝束連接到分析簡介欲,並從中提取數據,並在網頁上顯示一些圖表。這一切工作正常。
但是,我想使用oAuth2來與Analytics進行身份驗證,這就是爲什麼我必須從Github安裝Garb Gem的Sija分支(它支持oAuth2)並且我還安裝了omniauth-google-oauth2 Gem。現在,在理論上我應該可以使用下面的代碼進行驗證:
Garb::Session.access_token = access_token # an instance of OAuth2::Client
這是在這一點上,它變得有點朦朧了我,我將不勝感激一些指導。這裏有多遠,我已經得到了:
1)我在谷歌API控制檯創建項目和服務
2)下開啓Analytics(分析)API這爲我提供了一個客戶端ID和客戶端密鑰
3 )我碰到這個代碼,我可以與ID和祕密上面填充傳來:
client = OAuth2::Client.new(
GOOGLE_CLIENT_ID,
GOOGLE_CLIENT_SECRET,
{
:site => 'https://accounts.google.com',
:authorize_url => '/o/oauth2/auth',
:token_url => '/o/oauth2/token'
})
4)再有就是代碼的下位:
response = OAuth2::AccessToken.new(
client,
STORED_TOKEN, {
refresh_token: STORED_REFRESH_TOKEN,
expires_at: STORED_EXPIRES_AT
})
5),然後在與理論連接:
Garb::Session.access_token = response
我是我沒有在點令牌信息(4)上面的問題。在我看來,使用oAuth2我需要做一次「握手」並打印出返回標記值?也許通過Rails代碼打印返回的值,然後將標記值粘貼到Rails應用程序中的常量中,以便我可以在上面的代碼中使用它們?我真的很困惑。正如我前面提到的,使用用戶登錄身份驗證,Web應用程序可以正常工作。所有網絡應用程序正在執行分析驗證,拉下一些數據並繪製圖表。但我堅持把它轉換爲oAuth2作爲我只是不知道如何獲得Garb Gem正在尋找的訪問令牌。我還應該注意到,這不是一個有多個用戶認證的公共網站,這是一個連接到我們自己的Google Analytics數據的CMS網站。
我已經看到了這方面的一些部分片段,但沒有一個完整解釋或工作的例子。我真的很感謝任何指導和幫助解決這個問題。
很多感謝,
JR
非常感謝您的詳細解答。實際上,我使用相同的Rails,但使用cURL來獲取訪問/刷新令牌。我直到現在才被允許回答我自己的問題,所以我會在下面給出答案,並將其標記爲正確。再次歡呼! – 2013-05-13 08:24:43
我做了同樣的,我得到這個錯誤*** OAuth2 ::錯誤異常:<?xml version =「1.0」encoding =「UTF-8」?> GData Permission Permission internalReason > –
RailsEnthusiast
2013-05-29 10:44:50
insufficientPermissions