Невозможно получить общие подключения LinkedIn

В настоящее время я работаю над приложением Grails (использующим Groovy, который похож на Java), где пользователь может просматривать профиль других пользователей. На странице профиля пользователя мне нужно отобразить соединения LinkedIn, используемые совместно этим пользователем и профилями зрителя LinkedIn. Для интеграции с LinkedIn я в настоящее время использую linkedin-j.jar

Используя все, что я мог догадаться по документации API и поиску в Google, я написал следующий код, который был неудачным для получения общих подключений.

Любая помощь будет оценена.

LinkedInAccessToken targetUserLiAccessToken = new LinkedInAccessToken(targetUserOauthToken, targetUserOauthSecret)
LinkedInApiClient targetUserLiApiClient= linkedInApiClientFactory.createLinkedInApiClient(targetUserLiAccessToken)
Person targetUserLiProrfile=targetUserLiApiClient.getProfileForCurrentUser([ProfileField.ID] as Set)

LinkedInAccessToken currentUserLiAccessToken = new LinkedInAccessToken(currUserOauthToken, currUserOauthSecret)
LinkedInApiClient currentUserLiApiClient= linkedInApiClientFactory.createLinkedInApiClient(currentUserLiAccessToken)
Person resultProfile =  currentUserLiApiClient.getProfileById(targetUserProfile.id, [ProfileField.ID, ProfileField.RELATION_TO_VIEWER] as Set)

List<Person> commonConnections= resultProfile.relationToViewer.relatedConnections.personList

(Здесь текущий пользователь - зритель, а целевой пользователь - тот, чей профиль просматривается.)

После запуска этого кода я получаю следующие результаты:

resultProfile.relationToViewer.relatedConnections: NULL

resultProfile.relationToViewer.distance: 2

Но это не так, как ожидалось, профили LinkedIn обоих пользователей имеют одно общее соединение

1 ответ

Решение

Я смог решить проблему.

Точки, где я отсутствовал:

  1. Приложение LinkedIn, API-ключ и секрет которого я использовал для получения данных, было настроено на запрос только разрешения BASIC_PROFILE (это произошло потому, что LinkedIN недавно внес некоторые изменения в свои разрешения API). Для доступа к информации о соединениях также потребовались разрешения NETWORK.

  2. В коде я должен был использовать ProfileField.RELATION_TO_VIEWER_RELATED_CONNECTIONSвместо ProfileField.RELATION_TO_VIEWER

Ниже приведен последний кусок кода, который работал для меня:

LinkedInAccessToken targetUserLiAccessToken = new LinkedInAccessToken(targetUserOauthToken, targetUserOauthSecret)
LinkedInApiClient targetUserLiApiClient= linkedInApiClientFactory.createLinkedInApiClient(targetUserLiAccessToken)
Person targetUserLiProrfile=targetUserLiApiClient.getProfileForCurrentUser([ProfileField.ID] as Set)

LinkedInAccessToken currentUserLiAccessToken = new     LinkedInAccessToken(currUserOauthToken, currUserOauthSecret)
LinkedInApiClient currentUserLiApiClient= linkedInApiClientFactory.createLinkedInApiClient(currentUserLiAccessToken)
Person resultProfile =  currentUserLiApiClient.getProfileById(targetUserProfile.id, [ProfileField.ID, ProfileField.RELATION_TO_VIEWER_RELATED_CONNECTIONS] as Set)

List<Person> commonConnections= resultProfile.relationToViewer.relatedConnections.personList
Другие вопросы по тегам