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

StackOverflow https://stackoverflow.com/questions/2435194

  •  19-09-2019
  •  | 
  •  

Вопрос

Я пытаюсь использовать аутентификацию 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?я использую Указатель 1.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.Более подробную информацию можно получить у нашего сообщение на форуме.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top