Не удается получить общие подключения 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 обоих пользователей имеют одно общее соединение.


person Manish    schedule 12.09.2013    source источник
comment
Итак, distance верно, а relatedConnections нет?   -  person tim_yates    schedule 13.09.2013
comment
Да, Тим, ты прав.   -  person Manish    schedule 14.09.2013


Ответы (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
person Manish    schedule 25.09.2013