新的LinkedIn权限:使用rails LinkedIn gem访问过去的职位和教育

Linkedin最近更新了他们的API,使其在某些情况下可以访问的内容限制较少,但在访问方式方面通常更明确。

特别是,您必须在omniauth构建器中具体请求您想要的数据:

Rails.application.config.middleware.use OmniAuth::Builder do provider :linkedin, "consumer_key", "consumer_secret", :scope => 'r_fullprofile r_emailaddress r_network', :fields => ["id", "email-address", "first-name", "last-name", "headline", "industry", "picture-url", "public-profile-url", "location", "connections"] end 

请参阅: https : //github.com/skorks/omniauth-linkedin

与它之前的引号中的字段(所有这些都是通常可访问的配置文件信息的一部分)不同,“连接”是必须在此明确请求的结构化对象(默认情况下可以访问前面的那些)。

我对“职位”和“教育”领域更感兴趣,其中“连接”是结构化对象。 例如,头寸包含公司,头衔,开始日期,每个头寸结束日期的数据:

http://developer.linkedin.com/documents/profile-fields

如何在我的omniauth构建器中为职位和教育领域提出正确的请求? 我使用旧的API密钥访问了它们,但没有使用新发布的密钥(截至8月)。 感谢帮助!

看起来您正在为您的应用程序授予r_fullprofile权限。 这是正确的会员许可。 但是,这只会向经过身份validation的用户(其中​​包含“职位”和“教育”字段)授予完整的个人资料字段。 使用第一和第二学位连接,您只能检索基本配置文件字段的字段(作为r_basicprofile成员权限的一部分)

你需要添加教育领域和范围,这样你的领域就会变得像

 :fields => ["id", "email-address", "first-name", "last-name", "headline", "industry", "picture-url", "public-profile-url", "location", "connections", "educations"] 

有关详细信息,请参阅https://developer.linkedin.com/documents/profile-fields#educations