Evernote를 사용한 Oauth 인증 (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, 이 공급자를 제외하고는 훌륭했습니다.
해결책
아마도 서명자 일 것입니다. Evernote는 일반 텍스트 서명 만 지원합니다. 케이스가 재정의 된 경우 405를받을 수도 있습니다. createRequest
게시물 대신 get을 사용하는 메소드.
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 );
BTW, 나는 커뮤니티 지원 포럼을 통해이 답변을 얻었습니다. 나는 그것을 스스로 알아낼만큼 똑똑하지 않습니다. ;-)
다른 팁
최근에 HMAC-SHA1 서명에 대한 지원이 추가되었으므로 더 이상 MessageSigner를 변경할 필요가 없습니다. Post 대신 Get을 사용해야합니다. 자세한 정보는 우리가 제공합니다 포럼 게시물.
제휴하지 않습니다 StackOverflow