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