0

我希望能够将 spring-social-linkedin 与应用程序令牌一起使用,就像我可以使用 spring-social-facebook 和解决方法一样(使用应用程序访问令牌和 spring-social facebook 来查询公共页面)。

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

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

有谁知道LinkedIn是否有能力在没有redirect_uri舞蹈的情况下进行服务器集成(显然只能访问与公共信息相关的API子集)?

4

2 回答 2

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());

这是你要找的吗?

于 2014-07-27T09:11:48.213 回答
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。即便如此,该令牌仍然是用户令牌......它只是为授权的令牌。

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

于 2014-07-28T15:07:59.273 回答