La autenticación OAuth con Evernote (Uso de Java + poste indicador)
Pregunta
Estoy intentando utilizar la autenticación OAuth para conectarse a una variedad de servicios. Por esta su mayor parte, esto funciona (probado con twitter / photobucket), pero con Evernote, estoy recibiendo un código de respuesta 400.
¿Qué pasa aquí?
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 );
Esto funciona para Twitter + Photobucket, ¿por qué no Evernote? Estoy usando de Orientación de 1.2 , que ha sido genial, excepto por éste proveedor.
Solución
Lo más probable es firmante. Evernote sólo es compatible con la firma de texto sin formato. También puede recibir un 405, si ese es el caso, reemplazar el método createRequest
utilizar un GET en lugar 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 );
Por cierto, tengo esta respondió a través de los foros de soporte de la comunidad, no soy lo suficientemente inteligente como para averiguarlo por mi cuenta. ; -)