2011-02-14 66 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。

相关问题