0

我正在尝试使用 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,除了这个提供商之外,它一直很棒。

4

2 回答 2

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

顺便说一句,我通过社区支持论坛得到了这个答案,我不够聪明,无法自己解决。;-)

于 2010-08-19T00:59:50.800 回答
1

我们最近添加了对 HMAC-SHA1 签名的支持,因此您不再需要更改 messageSigner。您将需要使用 GET 而不是 POST。更多信息可从我们的论坛帖子中获得。

于 2010-12-08T04:42:54.217 回答