使用Evernote进行OAuth身份验证(使用Java + Signpost)

时间:2010-03-12 19:20:39

标签: java oauth evernote 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?我正在使用Signpost 1.2,除了这个提供商之外,它一直很棒。

2 个答案:

答案 0 :(得分: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 );
顺便说一下,我通过社区支持论坛得到了答案,我不够聪明,不能自己搞清楚。 ; - )

答案 1 :(得分:1)

我们最近添加了对HMAC-SHA1签名的支持,因此您不再需要更改messageSigner。您将需要使用GET而不是POST。有关详细信息,请参阅我们的forum post