尝试使用 OAuth 从 Evernote 获取请求令牌时出现 401 oauth_signature 错误

发布于 2024-10-17 16:46:20 字数 453 浏览 10 评论 0原文

我正在尝试使用 OAuth gem 和 Ruby on Rails 来获取 Evernote 请求令牌:

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

可能是什么原因导致的?

I am trying to get an Evernote request token using the OAuth gem with Ruby on Rails:

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

But I'm getting this error

OAuth::Unauthorized in PagesController#home
401 oauth_signature

What could be causing this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

无边思念无边月 2024-10-24 16:46:20

更改网站 url 以使用 https - 我遇到了同样的问题。

Change site url to use https - I had the same issue.

云裳 2024-10-24 16:46:20

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 默认使用的。

Evernote's sample code now contains a Ruby OAuth example that uses the OAuth gem. You can download the sample code from http://www.evernote.com/about/developer/api/.

In this case, you need to pass the oauth_callback parameter when getting a request token, because the Evernote OAuth provider implements 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")

Also, there's no need to set the signature method to PLAINTEXT; Evernote's provider supports HMAC-SHA1, which is what the OAuth gem uses by default.

只想待在家 2024-10-24 16:46:20

您需要将 OAuth 消费者密钥和消费者秘密放入当前显示“consumer_key_here”和“consumer_secret_here”的新方法中。

如果你的真实代码确实有值,请检查并确保它们是正确的——这听起来很愚蠢,但我昨天在使用 OAuth 时遇到了同样的问题,结果发现我使用了错误的变量。

You need to put your OAuth consumer key and consumer secret in the new method where it currently says "consumer_key_here" and "consumer_secret_here".

If you do have values there for your real code, check and make sure they are correct-- it sounds silly, but I had this same problem yesterday with OAuth and it turns out I was using the wrong variables.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文