2010-03-12 17 views
0

J'essaye d'utiliser l'authentification OAuth pour me connecter à une variété de services. Pour la plupart, cela fonctionne (testé avec twitter/photobucket), mais avec evernote, je reçois un code de réponse 400.Authentification OAuth avec Evernote (en utilisant Java + Signpost)

Quel est le problème ici?

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

Cela fonctionne pour Twitter + Photobucket, alors pourquoi pas evernote? J'utilise Signpost 1.2, ce qui a été génial, sauf pour ce fournisseur.

Répondre

2

Probablement le signataire. Evernote prend uniquement en charge la signature de texte brut. Vous pouvez également recevoir un 405, si c'est le cas remplacer la méthode createRequest pour utiliser un GET au lieu 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, je suis arrivé une réponse à travers les forums de soutien communautaire, je ne suis pas assez intelligent pour le comprendre moi-même. ;-)

1

Nous avons récemment ajouté la prise en charge de la signature HMAC-SHA1, vous ne devriez donc plus avoir à modifier le messageSigner. Vous devrez utiliser GET au lieu de POST. Plus d'informations sont disponibles auprès de notre forum post.