0

我目前正在开发一个 Grails 应用程序(使用类似于 Java 的 Groovy),用户可以在其中查看其他用户的个人资料。在用户的个人资料页面上,我需要显示该用户与查看者的 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 个人资料都有一个共享连接

4

1 回答 1

0

我能够解决这个问题。

我失踪的地方是:

  1. 我用来检索数据的 API Key 和 Secret 的 LinkedIn 应用程序被配置为只请求 BASIC_PROFILE 权限(这是因为LinkedIN 最近在他们的 API Permissions 中引入了一些更改)。访问连接信息也需要网络权限。

  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
于 2013-09-25T17:23:53.327 回答