Evernote での OAuth 認証 (Java+Signpost を使用)
質問
OAuth 認証を使用してさまざまなサービスに接続しようとしています。これはほとんどの部分では機能しますが (twitter/photobucket でテスト済み)、evernote では 400 応答コードを受け取ります。
ここで何が間違っているのでしょうか?
OAuthConsumer consumer = new DefaultOAuthConsumer( "myConsumerKey", "myConsumerSecret" );
OAuthProvider provider = new DefaultOAuthProvider( "https://sandbox.evernote.com/oauth", "https://sandbox.evernote.com/oauth", "https://sandbox.evernote.com/OAuth.action" );
String authUrl = provider.retrieveRequest( consumer, OAuth.OUT_OF_BAND );
これは Twitter + Photobucket で機能しますが、なぜ Evernote では機能しないのでしょうか?使っています 道標 1.2, 、このプロバイダーを除いては素晴らしかったです。
解決
おそらく署名者です。Evernote はプレーンテキスト署名のみをサポートしています。405 を受信する場合もあります。その場合は、 createRequest
POST の代わりに GET を使用するメソッド。
AuthConsumer consumer = new DefaultOAuthConsumer( "myConsumerKey", "myConsumerSecret" );
consumer.setMessageSigner( new PlainTextMessageSigner() );
OAuthProvider provider = new DefaultOAuthProvider( "https://sandbox.evernote.com/oauth", "https://sandbox.evernote.com/oauth", "https://sandbox.evernote.com/OAuth.action" );
String authUrl = provider.retrieveRequest( consumer, OAuth.OUT_OF_BAND );
ところで、私はこれについてコミュニティ サポート フォーラムを通じて回答を得ましたが、自分で解決できるほど賢明ではありません。;-)
他のヒント
最近 HMAC-SHA1 署名のサポートを追加したため、messageSigner を変更する必要はなくなりました。POST の代わりに GET を使用する必要があります。詳細については、当社から入手できます フォーラムの投稿.
所属していません StackOverflow