提出电子邮件地址请求时,Linked In API返回403(禁止)

时间:2019-05-03 12:10:57

标签: linkedin linkedin-api

我正试图从其“链接到”中获取用户的电子邮件地址。

我完成了整个OAuth 2.0授权代码流并获得了访问令牌,但是当我向端点https://api.linkedin.com/v2/me?projection=(email-address)发出GET请求时,它将返回403(禁止)HTTP状态代码。

发生了什么事

  1. 当我在请求授权码时在r_liteprofile r_email-address参数中将scope指定为许可,并且在请求数据时将参数fields指定为projection=(localizedFirstName, localizedLastName, email-address) localizedFirstName,我得到了200个HTTP状态代码,但是在结果JSON中,我仅得到了localizedLastNamer_emailaddress值。

  2. 如果我仅在scope参数中指定projection=(email-address)权限,而在请求数据时仅指定r_emailaddress,则会收到403(禁止)状态码。

  3. 如果我仅在scope字段中指定https://api.linkedin.com/v2/me,而忽略了指定任何字段,即我打了Authorization端点而没有任何参数(但访问令牌发送正确)在Bearer标头中作为r_emailaddress方案令牌),我得到了403(禁止的)HTTP状态代码。

我的应用程序确实具有Future的权限,因为这是创建时授予所有应用程序的基本权限,不需要批准。

enter image description here

我是否找到了正确的端点来获取电子邮件地址?一切似乎都还好,但我仍然收到403。怎么了?

1 个答案:

答案 0 :(得分:1)

检索电子邮件地址的请求是:

GET https://api.linkedin.com/v2/emailAddress?q=members&projection=(elements*(handle~))

您需要请求r_emailaddress作用域才能使用此端点。

请参阅https://docs.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/sign-in-with-linkedin?context=linkedin/consumer/context以供参考。