2

Linkedin の会社の更新を自分の Web サイトに取得しようとしています。プロセスhttps://developer.linkedin.com/documents/authenticationに従い、登録して API キーと秘密キーを生成しました。

ドキュメントによると、ステップ a で認証コードを生成できます。ステップ b でアクセス トークンを生成するには、Java で OAuth を使用しています。

request = OAuthClientRequest.tokenLocation("https://www.linkedin.com/uas/oauth2/accessToken")
                        .setGrantType(GrantType.AUTHORIZATION_CODE)
                        .setCode("****")
                        .setRedirectURI("https://www.example.in")
                        .setClientId("*******")
                        .setClientSecret("******").buildBodyMessage();
                    OAuthClient oAuthClient = new OAuthClient(new URLConnectionClient());
                    GitHubTokenResponse oAuthResponse = oAuthClient.accessToken(request, GitHubTokenResponse.class);
                    String accessToken = oAuthResponse.getAccessToken();
                    String expiresIn = oAuthResponse.getExpiresIn();

しかし、エラーが発生します

OAuthProblemException{description='Missing parameters: access_token', error='invalid_request', uri='null', state='null', scope='null'}
at org.apache.amber.oauth2.common.exception.OAuthProblemException.error(OAuthProblemException.java:57)
at org.apache.amber.oauth2.common.utils.OAuthUtils.handleOAuthProblemException(OAuthUtils.java:166)
at org.apache.amber.oauth2.common.utils.OAuthUtils.handleMissingParameters(OAuthUtils.java:184)
at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateRequiredParameters(OAuthClientValidator.java:90)
at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validateParameters(OAuthClientValidator.java:53)
at org.apache.amber.oauth2.client.validator.OAuthClientValidator.validate(OAuthClientValidator.java:49)
at org.apache.amber.oauth2.client.response.OAuthClientResponse.validate(OAuthClientResponse.java:64)
at org.apache.amber.oauth2.client.response.OAuthClientResponse.init(OAuthClientResponse.java:59)
at org.apache.amber.oauth2.client.response.OAuthAccessTokenResponse.init(OAuthAccessTokenResponse.java:52)
at org.apache.amber.oauth2.client.response.OAuthClientResponseFactory.createCustomResponse(OAuthClientResponseFactory.java:60)
at org.apache.amber.oauth2.client.URLConnectionClient.execute(URLConnectionClient.java:105)

これを修正するのを手伝ってください。助けてくれてありがとう。

4

2 に答える 2

2

私は問題を見つけました。

ドキュメントに問題があるようです。申し訳ありません。

右のコールは

request = OAuthClientRequest.tokenLocation("https://www.linkedin.com/uas/oauth2/accessToken")
                    .setGrantType(ResponseType.CODE.toString())
                    .setCode("****")
                    .setRedirectURI("https://www.example.in")
                    .setClientId("*******")
                    .setClientSecret("******").buildBodyMessage();

ResponseType.CODE.toString()というより心GrantType.AUTHORIZATION_CODE

于 2013-04-07T17:19:38.907 に答える
1

手動で署名プロセスを実行するのではなく、こちらのリンクされた開発者向けドキュメントを参照し、Java OAuth ライブラリを確認することをお勧めします。次に、特定の質問をすることができます。

于 2013-03-17T06:32:34.020 に答える