我正在尝试使用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?我正在使用Signpost 1.2,除了这个提供程序之外,这很棒。

最佳答案

最有可能是签名者。 Evernote仅支持纯文本签名。如果是这种情况,您可能还会收到405,请重写createRequest方法以使用GET而不是POST。

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 );


顺便说一句,我在社区支持论坛上得到了答复,但我还不够聪明,无法自行解决。 ;-)

关于java - Evernote的OAuth身份验证(使用Java + Signpost),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2435194/

10-12 03:06