2

linkedin-jを使用して、アプリケーションの一部に次のコードがあります

LinkedInOAuthService service = LinkedInOAuthServiceFactory.getInstance()
        .createLinkedInOAuthService(consumerKey, consumerSecret);
LinkedInRequestToken requestToken = 
                    service.getOAuthRequestToken(linkedinCallbackURL);
String authUrl = requestToken.getAuthorizationUrl(); 

で示されたページにリダイレクトしauthUrl、アプリケーションを承認する正しい LinkedIn ページに移動します。次に、 が指すページを生成するコードがこれlinkedinCallbackURLを実行します。

String verifier = request.getParameter("oauth_verifier");
LinkedInOAuthService oauthService = 
    LinkedInOAuthServiceFactory.getInstance()
                  .createLinkedInOAuthService(consumerKey, consumerSecret);  

LinkedInRequestToken requestToken = oauthService.getOAuthRequestToken();  
LinkedInAccessToken accessToken = oauthService
            .getOAuthAccessToken(requestToken, verifier);

残念ながら、次のエラーが表示されます。

com.google.code.linkedinapi.client.oauth.LinkedInOAuthServiceException: oauth.signpost.exception.OAuthCommunicationException: サービス プロバイダーとの通信に失敗しました: サーバーが HTTP 応答コードを返しました: URL の 401: https://api.linkedin.com/uas /oauth/アクセストークン

原因: oauth.signpost.exception.OAuthCommunicationException: サービス プロバイダーとの通信に失敗しました: サーバーが HTTP 応答コードを返しました: URL の 401: https://api.linkedin.com/uas/oauth/accessToken

何が間違っている可能性がありますか?

4

1 に答える 1

5

LinkedInRequestToken問題は、両方のポイントで同じオブジェクトを使用する必要があることです。それを行うために、私は最初の部分のセッションでそれを保存しました:

LinkedInRequestToken requestToken = 
            service.getOAuthRequestToken(linkedinCallbackURL);
session.setAttribute("requestToken", requestToken); // <== THE BEEF
String authUrl = requestToken.getAuthorizationUrl();

次に、セッションから取得しました。

LinkedInOAuthService oauthService = LinkedInOAuthServiceFactory.getInstance()
        .createLinkedInOAuthService(consumerKey, consumerSecret);  
// LinkedInRequestToken requestToken = oauthService.getOAuthRequestToken();
LinkedInRequestToken requestToken = 
        (LinkedInRequestToken) session.getAttribute("requestToken")  
LinkedInAccessToken accessToken = oauthService
    .getOAuthAccessToken(requestToken, verifier);

注:私はそれをたくさん検索しましたが、誰もこの特定の問題を見つけられなかったので、質問と回答を投稿します。Metaに関するこの質問の精神でそれを行う。また、このエラーは無数の理由で発生する可能性があり(NullPointerExceptionLinkedIn APIの場合と同様です...)、私が見つけた質問には、私が見た限りでは同じ原因がなかったため、いくつかの古い質問には答えませんでした。

于 2012-03-27T20:58:34.253 に答える