【发布时间】:2012-07-16 12:33:20
【问题描述】:
我们希望使用来自 LinkedIn 的信息更新我们的用户个人资料(如果用户选择导入此信息)。但是,我们希望使用 Oauth2 进行此授权,但根据 LinkedIn 的网站,他们的 REST API 仅支持 Ouath 1.0a:https://developer.linkedin.com/apis
有什么办法吗?
【问题讨论】:
标签: rest oauth-2.0 playframework-2.0 linkedin
我们希望使用来自 LinkedIn 的信息更新我们的用户个人资料(如果用户选择导入此信息)。但是,我们希望使用 Oauth2 进行此授权,但根据 LinkedIn 的网站,他们的 REST API 仅支持 Ouath 1.0a:https://developer.linkedin.com/apis
有什么办法吗?
【问题讨论】:
标签: rest oauth-2.0 playframework-2.0 linkedin
由于LinkedIn 使用他们的JavaScript API 提供OAuth 2 访问权限,您可以深入研究他们的Javascript 代码并以某种方式访问包含the OAuth 2 endpoints 的文件:
l.api = "https://api.linkedin.com/v1";
l.login = "https://www.linkedin.com/uas/connect/user-signin";
l.authorize = "https://www.linkedin.com/uas/oauth2/authorize?immediate=true";
[...]
l.logout = "https://www.linkedin.com/uas/connect/logout?oauth_token={OAUTH_TOKEN}&api_key={API_KEY}&callback={CALLBACK}";
l.userspace_renew = "https://www.linkedin.com/uas/js/authuserspace?v=0.0.2000-RC1.20001-1400&api_key={API_KEY}";
对于请求资源,可能使用REST API documentation 中的端点。
但是,请注意,他们的terms of use 可能禁止在没有他们的 JS API 的情况下使用这些端点,这可能会导致您的客户端受到制裁。您可以联系他们并请求许可。
【讨论】:
我在 Scala 和 Java 中创建了一个 Play 2.x 客户端,它支持 OAuth/CAS/OpenID/HTTP 身份验证和用户配置文件检索:https://github.com/leleuj/play-pac4j。
对于 OAuth 支持,它基于 Scribe,支持 LinkedIn、Facebook、Twitter、Google、Yahoo、DropBox、Github、Windows live、WordPress...
【讨论】: