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.

¿Fue útil?

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

Otros consejos

Recientemente hemos añadido soporte para HMAC-SHA1 firma, por lo que no es necesario cambiar el messageSigner más. Tendrá que usar GET en lugar de POST. Más información está disponible en nuestra .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top