0

Ruby on Rails で OAuth gem を使用して 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

何が原因でしょうか?

4

3 に答える 3

1

Evernoteのサンプルコードには、OAuthgemを使用するRubyOAuthの例が含まれています。サンプルコードはhttp://www.evernote.com/about/developer/api/からダウンロードできます。

この場合、EvernoteOAuthプロバイダーはOAuth1.0aを実装しているため、リクエストトークンを取得するときにoauth_callbackパラメーターを渡す必要があります。

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のプロバイダーは、OAuthgemがデフォルトで使用するHMAC-SHA1をサポートしています。

于 2011-03-08T16:04:32.780 に答える
1

https を使用するようにサイトの URL を変更します - 同じ問題がありました。

于 2011-03-08T10:22:22.750 に答える
0

現在「consumer_key_here」と「consumer_secret_here」となっている新しいメソッドに、OAuth コンシューマ キーとコンシューマ シークレットを配置する必要があります。

実際のコードに値がある場合は、それらが正しいことを確認してください。ばかげているように聞こえますが、昨日 OAuth で同じ問題が発生し、間違った変数を使用していたことがわかりました。

于 2011-02-14T14:06:05.753 に答える