Я пытаюсь получить обновления компании Linkedin на своем веб-сайте. Последовал процесс https://developer.linkedin.com/documents/authentication и сгенерировал ключ api и секретный ключ, зарегистрировавшись.Linkedin api call using oauth in java
В соответствии с documentation Я могу сгенерировать Авторизованный код на этапе a. Для шага b для создания токена доступа Я использую OAuth in java.
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)
Пожалуйста, помогите исправить. Заранее благодарю за любую помощь.
Спасибо Антонио, просто попробовал это и получил ошибку компиляции. Метод setGrantType (GrantType) в типе OAuthClientRequest.TokenRequestBuilder не является , применимым для аргументов (String). Нужно ли делать какие-либо твики. – Bhabani
извинения oopps. Я смешал местоположение аутентификации с токеном. Проблема в том, что вы можете использовать OAuthJSONAccessTokenResponse.class, а не GitHubTokenResponse.class для Linkedin: OAuthJSONAccessTokenResponse oAuthResponse = oAuthClient.accessToken (запрос, OAuthJSONAccessTokenResponse.class); Мы работаем над улучшением нашего API и документации. Я понимаю, что это немного запутанно. –
Спасибо Антонио, наконец, я могу позвонить. – Bhabani