Autenticação OAuth com o Evernote (usando Java + Signpost)
Pergunta
Eu estou tentando usar a autenticação OAuth para conectar a uma variedade de serviços. Por este maior parte, isso funciona (testado com twitter / photobucket), mas com o Evernote, eu estou recebendo um código de 400 resposta.
O que está errado aqui?
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 );
Isso funciona para Twitter + Photobucket, então porque não Evernote? Estou usando Signpost 1,2 , que tem sido great, exceto para este provedor.
Solução
O mais provável é signatário. Evernote suporta apenas a assinatura de texto simples. Você também pode receber um 405, se esse for o caso, substituir o método createRequest
usar um GET em vez de 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 );
BTW, eu tenho este respondeu através dos fóruns de suporte da comunidade, eu não sou inteligente o suficiente para descobrir isso por conta própria. ; -)
Outras dicas
Nós apoio recentemente adicionado para assinatura HMAC-SHA1, então você não deve precisar alterar o messageSigner mais. Você vai precisar usar GET em vez de POST. Mais informações estão disponíveis em nosso fórum pós .