Spring-social-linkedin应用程序令牌(无用户身份验证)

时间:2014-07-16 03:48:13

标签: spring linkedin spring-social spring-social-linkedin

我希望能够将spring-social-linkedin与应用程序令牌一起使用,就像我可以使用spring-social-facebook和变通办法(Use app access token with spring-social facebook to query public pages)一样。

我的应用程序只需要查询公共页面,因此不需要针对特定​​用户进行身份验证:例如,我查询公共公司页面http://www.linkedin.com/company/google

我一直在阅读大量文档,但我对目前的情况感到困惑。我不认为你甚至可以通过构造函数使用OAuth1凭证再实例化LinkedInTemplate,而doco似乎已​​过时(http://docs.spring.io/spring-social-linkedin/docs/1.0.x/reference/htmlsingle/#apis)。

有没有人知道LinkedIn是否具有没有redirect_uri舞蹈的服务器集成的能力(显然只能访问与公共信息相关的API子集)?

2 个答案:

答案 0 :(得分:0)

查看此测试的来源 https://github.com/spring-projects/spring-social-linkedin/blob/master/spring-social-linkedin/src/test/java/org/springframework/social/linkedin/api/impl/CompanyTemplateTest.java

    mockServer.expect(requestTo(CompanyTemplate.COMPANY_URL.replaceFirst("\\{id\\}", "/1337").replaceFirst("\\{filter\\}", "") + "&oauth2_access_token=ACCESS_TOKEN")).andExpect(method(GET))
        .andRespond(withSuccess(new ClassPathResource("company.json", getClass()), MediaType.APPLICATION_JSON));
    Company company = linkedIn.companyOperations().getCompany(1337);

    assertEquals(1337, company.getId());
    assertEquals("http://feeds.feedburner.com/LinkedInBlog", company.getBlogRssUrl());

这是你正在寻找的吗?

答案 1 :(得分:0)

显然,当推送SSLI 1.0.0.RELEASE时,新文档未正确发布。谢谢你们抬头......我会尽力解决这个问题。

与此同时......根据https://developer.linkedin.com/documents/company-lookup-api-and-fields上的LinkedIn API文档,所有公司数据请求都必须使用访问令牌代表用户进行经过身份验证的调用。因此,必须获得用户授权才能进行此类调用。我相信无论您使用的是OAuth 1.0a还是OAuth 2都是如此。

Spring Social LinkedIn假设您将使用OAuth 2授权,这也是LinkedIn期望大多数应用程序将执行的操作(请参阅https://developer.linkedin.com/documents/authentication)。因此,在实例化LinkedInTemplate时,您需要提供的所有内容都是有效的访问令牌。但是,如何获得该访问令牌是另一回事。

Spring Social的ConnectController可以帮助您进行OAuth舞蹈。但听起来你想知道如何获取应用程序的访问令牌,而不涉及用户授权。据我所知(尽管我很乐意对此进行更正),LinkedIn不支持OAuth 2客户端授权。他们确实在您的应用程序的注册页面上为您提供了访问令牌,但据我所知,这是一个OAuth 1.0a令牌,不适用于Spring Social。即便如此,该令牌仍然是一个用户令牌...它只是一个授权的令牌。

因此,如果公司请求需要授权代表用户(根据文档)行事的访问令牌,那么我认为您没有其他选择,只能通过用户授权获取访问令牌。我想你可以授权自己并将该令牌用于你的应用程序,但这可能是对令牌的滥用......请自担风险。