2014-06-15 21 views
0

我正在寫一個小的cli工具,應該檢查我的日曆,並根據我的約會做一些東西。
我在OAuth2身份驗證中苦苦掙扎。我用這樣的捲曲工具檢查了示波器和client_id:Ruby的Net :: HTTP沒有從谷歌OAuth服務器得到正確的答案

curl -d "client_id=12345...&scope=scope=https://www.googleapis.com/auth/calendar.readonly" https://accounts.google.com/o/oauth2/device/code 

這樣,我得到正確的響應。

{ 
"device_code" : "somestuff", 
"user_code" : "otherstuff", 
"verification_url" : "http://www.google.com/device", 
"expires_in" : 1800, 
"interval" : 5 
} 

但是,當我嘗試使用Net :: HTTP在Ruby中我只是得到HTTP狀態200我已經做到了這種方式:

res = Net::HTTP.post_form(uri, {'client_id' =>'1234....apps.googleusercontent.com', 'scope' => 'https://www.googleapis.com/auth/calendar.readonly' }) 

如果我檢查變量的資源之後,我得到狀態302,但我想這是正確的。
有人能告訴我我在做什麼,做錯了,所以我沒有得到JSON響應?我應該嘗試一些不同於Net :: HTTP的東西嗎?

回答

0

res是一個包含所有響應數據的變量,而不僅僅是響應的文本。如果您撥打post_form()之後puts res.body,您應該找到您的JSON(您可以使用JSON模塊進行分析)。

+0

感謝您的提示。我試過這個,但是它說變量是空的(無)。在我嘗試訪問res.body後,它工作。謝謝 – Shimu

相關問題