2014-01-23 2 views
0

Я хочу создать функцию синхронизации evernote в моем приложении java.с использованием писца-java и evernote java api не может получить правильный ответ oauth

Итак, я загружаю исходный код, как всегда говорил мне, и mvn правильно достал пакет jar.

И загружаю писец-джаву тоже. Я хочу использовать javascript для получения значка oauth.

Я был так счастлив, когда увидел, что в писете-джаве есть класс evernoteapi.

Но я получил исключение вроде этого:

" org.scribe.exceptions.OAuthException: тело Ответ неверен Невозможно извлечь маркер и секрет из этого:.

'<html> 
<head> 
<meta charset="utf-8" /> 
<meta http-equiv="X-UA-Compatible" content="IE=9,chrome=1" /> 
<meta name="viewport" content="width=device-width,initial-scale=1" /> 
<link rel="Shortcut Icon" href="/favicon.ico" type="image/x-icon" /> 
<link rel="stylesheet" href="/redesign/global/css/reset.css" /> 

<link rel="stylesheet" href="/redesign/global/css/fonts.css" media="all" /> 

<link rel="stylesheet" href="/redesign/global/css/header.css" /> 
<link rel="stylesheet" href="/redesign/global/css/layout.css" /> 

<title>Evernote Error</title> 
</head> 
<body> 
    <div class="header"> 
    <div class="logo-bar"> 
     <a class="evernote-logo" href="https://sandbox.evernote.com/Home.action?/">Evernote</a></div> 
    </div> 
    <div id="container-boundingbox" class="wrapper"> 
    <div id="container" class="wrapper"> 
     <div class="main"> 
     <div class="page-header"> 
      <h1> 
      Oops, we encountered an error.</h1> 
     </div> 
     <div> 
      <p> 
      Sorry, we've encountered an unexpected error.</p> 
     </div> 
     <div class="clear"></div> 
     </div> 
    </div> 
    <div class="shadow wrapper"> 
     <img src="/redesign/global/img/desktop-shadow-full.png" /> 
    </div> 
    <div class="footer wrapper"> 
     <a class="footer-entry" href="https://sandbox.evernote.com/Home.action?/tos/">Terms of Service</a><a class="footer-entry" href="https://sandbox.evernote.com/Home.action?/privacy/">Privacy Policy</a><span class="footer-entry last">Copyright 2014 Evernote Corporation. All rights reserved.</span> 
    </div> 
    </div> 
</body> 
</html>' 

"

Это исключение возбуждается по строке Ток-запросToken = service.getRequestToken();:

  OAuthService service = new ServiceBuilder() 
     .provider(EvernoteApi.Sandbox.class) 
     .apiKey("your key") 
     .apiSecret("your secret") 
     .build(); 

     Token requestToken = service.getRequestToken(); 

     String authUrl = service.getAuthorizationUrl(requestToken); 

Я гугле его и понятия не имею, еще ...

ответ

1

Я думаю, вам не хватает обратного вызова URL.

OAuthService service = new ServiceBuilder() 
    .provider(EvernoteApi.Sandbox.class) 
    .apiKey("YOUR CONSUMER_KEY") 
    .apiSecret("YOUR CONSUMER_SECRET") 
    .callback("YOUR CALLBACK URL") 
    .build(); 

Вы также можете посмотреть, как это работает с this sample app.

+0

привет kentaro. Для чего используется обратный вызов? и как он выглядит? Не могли бы вы привести мне пример. – MengMeng

+0

После авторизации приложения на странице Evernote OAuth он перенаправляется на указанный URL обратного вызова. Вы можете видеть, как работает OAuth здесь. http://dev.evernote.com/doc/articles/authentication.php – kentaro

+0

Некоторые классы API, такие как «SinaWeiboApi», могут использовать OAuthService без обратного вызова. Почему я должен передать строку обратного вызова службе? Я не понимаю. Я прочитал введение, которое вы мне дадите. Не поймите. – MengMeng