我目前正在使用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个人资料都有一个共享连接
答案 0 :(得分:0)
我能够解决这个问题。
我失踪的地方是:
我用于检索数据的API密钥和密钥的LinkedIn应用程序配置为仅询问BASIC_PROFILE权限(这是因为LinkedIN recently introduced some changes in their API Permissions)。访问连接信息也需要NETWORK权限。
在代码中,我应该使用
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