无法获取LinkedIn共享连接

时间:2013-09-12 19:11:49

标签: java groovy linkedin linkedin-j

我目前正在使用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个人资料都有一个共享连接

1 个答案:

答案 0 :(得分:0)

我能够解决这个问题。

我失踪的地方是:

  1. 我用于检索数据的API密钥和密钥的LinkedIn应用程序配置为仅询问BASIC_PROFILE权限(这是因为LinkedIN recently introduced some changes in their API Permissions)。访问连接信息也需要NETWORK权限。

  2. 在代码中,我应该使用 ProfileField.RELATION_TO_VIEWER_RELATED_CONNECTIONS 代替 ProfileField.RELATION_TO_VIEWER

  3. 以下是对我有用的最后一段代码:

    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