Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用scribe检索OAuth访问令牌时发生异常_Java_Oauth_Evernote_Scribe - Fatal编程技术网

Java 使用scribe检索OAuth访问令牌时发生异常

Java 使用scribe检索OAuth访问令牌时发生异常,java,oauth,evernote,scribe,Java,Oauth,Evernote,Scribe,我正在尝试为我的应用程序生成OAuth访问令牌,以便从Evernote获取笔记。下面是它的Java代码 public class EverNoteOauthGenerator { public static void main(String[] args) throws EDAMUserException, EDAMSystemException, TException { Class<? extends EvernoteApi> providerClass

我正在尝试为我的应用程序生成OAuth访问令牌,以便从Evernote获取笔记。下面是它的Java代码

public class EverNoteOauthGenerator {
    public static void main(String[] args) throws EDAMUserException, EDAMSystemException, TException {
        Class<? extends EvernoteApi> providerClass = EvernoteApi.Sandbox.class;
        /**
        if (EVERNOTE_SERVICE == EvernoteService.PRODUCTION) {
          providerClass = org.scribe.builder.api.EvernoteApi.class;
        } **/

        // Generate Request token & Request secret
        String CONSUMER_KEY = "******";
        String CONSUMER_SECRET = "******";
        String cbUrl = "https://sandbox.evernote.com/OAuth.action?oauth_token=****.158D9C1C696.6C6F63616C686F7374.089C889A2F3D722B9ECC231961A3BF49";
        OAuthService service = new ServiceBuilder()
          .provider(providerClass)
          .apiKey(CONSUMER_KEY)
          .apiSecret(CONSUMER_SECRET)
          .callback(cbUrl)
          .build();

        Token scribeRequestToken = service.getRequestToken();
        //String requestToken = scribeRequestToken.getToken();
        //String requestTokenSecret = scribeRequestToken.getSecret();

        String authUrl = EvernoteService.SANDBOX.getAuthorizationUrl(scribeRequestToken.getToken());

        // Generate OAuth Access token
        Token scribeRequestToken = new Token(requestToken, requestTokenSecret);

        Verifier scribeVerifier = new Verifier("6E5879A40CBEB7CCF77507BE8FE905AA");
        Token scribeAccessToken = service.getAccessToken(scribeRequestToken, scribeVerifier);
        EvernoteAuth evernoteAuth = EvernoteAuth.parseOAuthResponse(EvernoteService.SANDBOX, scribeAccessToken.getRawResponse());
        String accessToken = evernoteAuth.getToken();
        String noteStoreUrl = evernoteAuth.getNoteStoreUrl();
        System.out.println("Access token :: " + accessToken);

        evernoteAuth = new EvernoteAuth(EvernoteService.SANDBOX, accessToken);
        NoteStoreClient noteStoreClient = new ClientFactory(evernoteAuth).createNoteStoreClient();

        List<Notebook> notebooks = noteStoreClient.listNotebooks();
        for (Notebook notebook : notebooks) {
          System.out.println("Notebook: " + notebook.getName());
        }
    }
}

回调URL必须是您的URL,在您的应用获得授权后,用户将重定向到该URL。当用户被重定向回来时,您应该能够从URL参数获得OAuth验证器,而您的代码中似乎对验证器进行了硬编码。另请参阅关于身份验证。

回调URL必须是您的URL,在您的应用程序获得授权后,用户将重定向到该URL。当用户被重定向回来时,您应该能够从URL参数获得OAuth验证器,而您的代码中似乎对验证器进行了硬编码。另请参阅关于身份验证的内容。

我首先尝试作为java Program。在这种情况下,我应该配置什么回调URL?localhost呢?我首先尝试作为java Program。在这种情况下,我应该配置什么回调URL?localhost呢?
Exception in thread "main" org.scribe.exceptions.OAuthException: Response body is incorrect. Can't extract token and secret from this

at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:41)
    at org.scribe.extractors.TokenExtractorImpl.extract(TokenExtractorImpl.java:27)
    at org.scribe.oauth.OAuth10aServiceImpl.getAccessToken(OAuth10aServiceImpl.java:82)
    at com.evernote.auth.EverNoteOauthGenerator.main(EverNoteOauthGenerator.java:51)