OAuth-аутентификация с Evernote (с использованием Java + Signpost) - PullRequest
0 голосов
/ 12 марта 2010

Я пытаюсь использовать проверку подлинности OAuth для подключения к различным службам. По большей части это работает (проверено с помощью twitter / photobucket), но с evernote я получаю код ответа 400.

Что здесь не так?

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

Это работает для Twitter + Photobucket, так почему бы не evernote? Я использую Signpost 1.2 , что было здорово, за исключением этого одного провайдера.

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Скорее всего, подписант. Evernote поддерживает только подписывание простого текста. Вы также можете получить 405, если это так, переопределите метод createRequest, чтобы использовать GET вместо 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 );

Кстати, я получил ответ на форумах поддержки сообщества, я не достаточно умен, чтобы понять это самостоятельно. ; -)

1 голос
/ 08 декабря 2010

Недавно мы добавили поддержку подписи HMAC-SHA1, поэтому вам не нужно больше менять messageSigner. Вам нужно будет использовать GET вместо POST. Более подробную информацию можно получить из нашего сообщения на форуме .

...