OAuth-аутентификация с Evernote (с использованием Java+Signpost)

Я пытаюсь использовать проверку подлинности 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 ответа

Решение

Скорее всего, подписант. 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 );

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

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

Другие вопросы по тегам