2011-02-14 96 views
0

我試圖使用與Ruby on Rails的OAuth的寶石來獲得一個Evernote的請求令牌來獲得來自Evernote的一個請求令牌時,401 oauth_signature錯誤:獲取嘗試使用OAuth

customer = OAuth::Consumer.new("consumer_key_here", "consumer_secret_here",{ :site=>"http://sandbox.evernote.com/",:request_token_path => "/oauth",:oauth_signature_method => "PLAINTEXT" }) 
@request_token = customer.get_request_token 

但我得到這個錯誤

OAuth::Unauthorized in PagesController#home 
401 oauth_signature 

什麼可能導致這種情況?

回答

0

您需要將您的OAuth使用者密鑰和使用者密鑰置於當前所說的「consumer_key_here」和「consumer_secret_here」的新方法中。

如果您確實有代表真實代碼的值,請檢查並確保它們是正確的 - 聽起來很愚蠢,但昨天我使用OAuth發現了同樣的問題,結果我使用了錯誤的變量。

1

更改網站的URL使用https - 我有同樣的問題。

1

Evernote的示例代碼現在包含一個使用OAuth gem的Ruby OAuth示例。您可以從http://www.evernote.com/about/developer/api/下載示例代碼。

在這種情況下,您需要在獲取請求令牌時傳遞oauth_callback參數,因爲Evernote OAuth提供程序實現了OAuth 1.0a。

consumer = OAuth::Consumer.new(consumerKey, consumerSecret, { 
     :site => "https://sandbox.evernote.com/", 
     :request_token_path => "/oauth", 
     :access_token_path => "/oauth", 
     :authorize_path => "/OAuth.action"}) 

requestToken = consumer.get_request_token(
     :oauth_callback => "http://www.me.com/callback") 

此外,沒有必要將簽名方法設置爲PLAINTEXT; Evernote的供應商支持HMAC-SHA1,這是默認使用的OAuth gem。

相關問題