OAuth-Authentifizierung mit Evernote (mit Java + Wegweiser)
Frage
Ich versuche, OAuth-Authentifizierung zu verwenden, um eine Vielzahl von Diensten zu verbinden. Zu diesem größten Teil dieser Werke (mit twitter / photobucket getestet), aber mit Evernote, Ich erhalte einen 400-Antwortcode.
Was ist los hier?
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 );
Dies funktioniert für Twitter + Photobucket, warum also nicht Evernote? Ich verwende Wegweisers 1.2 , die mit Ausnahme dieses einen Anbieter groß gewesen ist.
Lösung
Wahrscheinlich die Unterzeichner. Evernote unterstützt nur Klartext Unterzeichnung. Sie können auch eine 405 erhalten, wenn das der Fall ist, die createRequest
Methode überschreiben, eine GET statt POST zu verwenden.
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 );
Übrigens, ich habe dies durch die Community-Support-Foren beantwortet, ich bin nicht intelligent genug, um es herauszufinden, auf eigene Faust. ; -)
Andere Tipps
Wir haben vor kurzem Unterstützung für HMAC-SHA1 Unterzeichnung, so dass Sie nicht die messageSigner benötigen, sollten nicht mehr zu ändern. Sie müssen GET statt POST verwenden. Weitere Informationen finden Sie unter Forum posten .