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

时间:2012-08-24 21:24:27

标签: ruby-on-rails omniauth linkedin

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月)。感谢帮助!

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

您需要添加教育字段和范围,以便您的字段变为类似

: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