質問

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 を使用する必要があります。詳細については、当社から入手できます フォーラムの投稿.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top