我正在尝试使用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,除了这一个提供商之外,它一直都很棒。
发布于 2010-08-19 08:59:51
最有可能是签名者。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-12-08 12:42:54
我们最近添加了对HMAC-SHA1签名的支持,因此您不再需要更改messageSigner。您将需要使用GET而不是POST。有关更多信息,请访问我们的forum post。
https://stackoverflow.com/questions/2435194
复制相似问题