使用scribe-java和evernote java api无法获得正确的oauth响应

时间:2014-01-23 05:25:09

标签: java oauth evernote

我想在我的java应用程序中开发一个evernote同步函数。

所以我下载源代码,因为evernote告诉我,并且它正确地获取了jar包。

我也下载了scribe-java。我想用scribe java来获取oauth令牌。

当我看到scribe-java中有一个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 requestToken = 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 个答案:

答案 0 :(得分:1)

我猜你错过了回调网址。

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

您还可以查看this sample app的工作原理。