我需要获取id为yZTcaxINNv的用户的连接。我使用了linkedinj,代码看起来像这样
import com.google.code.linkedinapi.client.LinkedInApiClient;
import com.google.code.linkedinapi.client.LinkedInApiClientFactory;
import com.google.code.linkedinapi.schema.Connections;
import com.google.code.linkedinapi.schema.Person;
public class Linkedin_Data_Extract {
public static void main(String[] args) {
final String consumerKeyValue = "My key";
final String consumerSecretValue ="My Secret";
final String accessTokenValue = "Access Token";
final String tokenSecretValue = "Secret";
final String id = "yZTcaxINNv";
final LinkedInApiClientFactory factory = LinkedInApiClientFactory.newInstance(consumerKeyValue, consumerSecretValue);
final LinkedInApiClient client = factory.createLinkedInApiClient(accessTokenValue, tokenSecretValue);
Connections cc=client.getConnectionsById(id);
for(Person p :cc.getPersonList()) {
System.out.println(p.getLastName());
System.out.println(p.getId());
System.out.println("Industry "+p.getIndustry());
System.out.println("currentStatus "+p.getCurrentStatus());
System.out.println("link "+p.getPublicProfileUrl());
System.out.println("position "+p.getEducations());
System.out.println();
}
}
}
但是我得到了这样的错误
Exception in thread "main" com.google.code.linkedinapi.client.LinkedInApiClientException: Access to connections denied
at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.createLinkedInApiClientException(BaseLinkedInApiClient.java:3906)
at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.callApiMethod(BaseLinkedInApiClient.java:3781)
at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.callApiMethod(BaseLinkedInApiClient.java:3725)
at com.google.code.linkedinapi.client.impl.BaseLinkedInApiClient.getConnectionsById(BaseLinkedInApiClient.java:235)
at Linkedin_Data_Extract.main(Linkedin_Data_Extract.java:27)
为什么我得到许可问题
通过OAuth访问其他用户信息的第三方api需要得到用户自己明确的允许权限。
通常,这是通过一个弹出窗口发生的,用户被要求允许/拒绝你的应用程序操作他的数据。我猜这就是你的问题所在。
我不知道Linkedin -j是如何做到这一点的,但如果你有其他选择,你可以试试Spring Social,它有一个专门针对Linkedin的模块。如果你感兴趣,可以参考我给你的快速入门示例