2010-03-12 7 views
0

OAuth 인증을 사용하여 다양한 서비스에 연결하려고합니다. 이 부분의 대부분은 (트위터/포토 버킷으로 테스트 한) 작동하지만, evernote에서는 400 응답 코드를 받았습니다.Evernote를 사용한 OAuth 인증 (Java + 표지판 사용)

여기에 무슨 문제가 있습니까?

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

이 트위터 + 포토 버킷 작동, 왜 에버 노트하지? 나는 Signpost 1.2을 사용하고 있는데,이 제공자를 제외하고는 정말 좋았습니다.

답변

2

대부분 서명자 일 수 있습니다. Evernote는 일반 텍스트 서명 만 지원합니다. 또한 405가 수신되는 경우 POST 대신 GET을 사용하는 createRequest 메서드를 무시할 수 있습니다.

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, 나는이 커뮤니티 지원 포럼 통해 답변을 가지고, 나는 내 자신에 그것을 알아낼만큼 똑똑하지 않다. ;-)

1

최근에 HMAC-SHA1 서명에 대한 지원이 추가되었으므로 더 이상 messageSigner를 변경할 필요가 없습니다. POST 대신 GET을 사용해야합니다. 자세한 내용은 forum post에서 확인할 수 있습니다.