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. Более подробная информация доступна на нашем форуме.