Получение 401 ошибки oauth_signature при попытке получить токен запроса от Evernote с помощью OAuth - PullRequest
0 голосов
/ 14 февраля 2011

Я пытаюсь получить токен запроса Evernote, используя гем OAuth с 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

Но я получаю эту ошибку

OAuth::Unauthorized in PagesController#home
401 oauth_signature

Что может быть причинойэто?

Ответы [ 3 ]

1 голос
/ 08 марта 2011

Измените URL сайта для использования https - у меня возникла та же проблема.

1 голос
/ 08 марта 2011

Пример кода Evernote теперь содержит пример Ruby OAuth, в котором используется гем 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.

0 голосов
/ 14 февраля 2011

Вы должны поместить свой ключ потребителя OAuth и секрет потребителя в новый метод, в котором в настоящее время написано "consumer_key_here" и "consumer_secret_here".

Если у вас есть значения для вашего реального кода, проверьте и убедитесь, что они правильные - это звучит глупо, но у меня была такая же проблема вчера с OAuth, и оказалось, что я использовал неправильные переменные.

...