我试图使用OAuth身份验证连接到各种各样的服务。对于此大多数情况下,这个工作(与Twitter /测试的photobucket),但与印象笔记,我收到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,如果是这样的话覆盖使用GET代替POST的createRequest方法。

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了。您将需要使用GET而不是POST。更多信息,请访问我们的论坛帖子

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top