api.linkedin.com/v2/的任何查询都会返回“没有足够的权限访问...”

39
  1. 我使用以下URL获取Access Token(带有范围:r_basicprofile rw_company_admin w_share),并使用Client IDClient Secret
  2. https://api.linkedin.com/v2/me端点发出请求

curl -H "Authorization: Bearer ACCESS_TOKEN"
    -H "Accept: application/json"
    -H "Content-Type: application/json"
    -H "X-Restli-Protocol-Version: 2.0.0" https://api.linkedin.com/v2/me
  • 获得回复:

  • {
        "serviceErrorCode": 100,
        "message": "Not enough permissions to access /me GET ",
        "status": 403
    }
    

    对于任何对https://api.linkedin.com/v2/的请求,都会返回类似的错误响应。

    官方文档中对请求头有不同的要求:

    但我尝试了两个版本的请求头,都没有成功。

    对于使用相同令牌的https://api.linkedin.com/v1/的请求能够成功返回数据。

    请告诉我我做错了什么。


    3
    谢谢你的帮助,但这个API客户端并没有解决我的问题(我已经通过/v2/端点成功进行了授权)。问题在于任何请求/v2/以接收数据(除授权请求外)都会返回错误。 - Pavel Timofeev
    1
    你找到解决方案了吗?我也遇到了同样的错误。 - Muhwu
    抱歉,目前还没有任何消息。 - Pavel Timofeev
    3
    我遇到了相同的问题。OAuth授权顺利完成,但是每次使用v2调用都会返回下面的错误。我开始认为LinkedIn API v2出了问题...有人找到解决方法了吗?{ "serviceErrorCode": 100, "message": "没有足够的权限访问 /me GET ", "status": 403 } - gabics
    如果您已经使用v1 API创建了应用程序,可以尝试使用r_liteprofile而不是r_basicprofile(请参阅https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/migration-faq?context=linkedin/consumer/context,特别是其中提到的`r_liteprofile(replaces r_basicprofile)`)。 - Lucas Basquerotto
    显示剩余3条评论
    3个回答

    20

    1
    我们已经是合作伙伴并拥有以下权限: r_basicprofile、r_contactinfo、r_emailaddress、r_fullprofile、r_network、rw_company_admin、rw_groups、rw_nus、w_messages、w_share。这些足够调用v2 API了吗?我遇到了与上述完全相同的403错误。 - javadev
    1
    需要权限 r_ad_campaignsrw_organization 才能访问 /v2/me 吗? - MariuszS
    1
    @javadev,你解决了这个问题吗?我们需要再次申请“营销开发者计划”吗? - hamedazhar
    @javadev 我的应用程序是旧的,我们已经在几年前获得了批准。那么我们需要再次从领英获取批准吗? - hamedazhar
    2
    @DeviOS 根据此链接:https://learn.microsoft.com/en-us/linkedin/consumer/integrations/self-serve/migration-faq,您需要这样做。 - javadev
    显示剩余5条评论

    17

    授权的第一步中,使用r_liteprofile代替r_basicprofile。这将解决您的问题。


    @Vijay,在 v2 版本中,您需要获得 r_basicprofile 权限。 - George I.

    6

    API访问方式已经改变,现在需要编写多个API调用来重写以前只需要使用一个API调用即可获取的内容。

    以前,使用范围“r_basicprofile,r_emailaddress”,您可以获得:

    • 用户基本信息,如姓名、位置等
    • LinkedIn用户资料网址
    • 电子邮件
    • 头像图像

    现在,您可以使用“r_basicprofile”仅在您参与合作计划时获取LinkedIn公共网址,且难以加入!

    如果您想获取access_token,您可以使用“r_liteprofile,r_emailaddress”范围进行请求,以获取基本个人资料信息和电子邮件

    并使用以下3个API调用来获取所有详细信息,遗憾的是没有LinkedIn公共网址(如果有人知道如何获得,请在评论中指出,以便我修改答案)

    1. 个人资料信息 - https://api.linkedin.com/v2/me
    2. 电子邮件 - https://api.linkedin.com/v2/clientAwareMemberHandles?q=members&projection=(elements*(primary,type,handle~))
    3. 个人资料图像 - https://api.linkedin.com/v2/me?projection=(id,profilePicture(displayImage~:playableStreams))
    4. 公共个人资料网址 - 不可能!

    访问令牌

    使用此链接进行检索说明

    https://learn.microsoft.com/en-us/linkedin/shared/authentication/client-credentials-flow?context=linkedin/consumer/context


    我想获取r_basicprofile,并尝试了许多方法,但仍未得到正确的解决方案!你有任何解决方案吗? - Divyesh_08
    在他们今天的官方文档中,他们表示您可以通过基本个人资料结果中的vanityName获取个人资料网址,即通过GET /v2/userinfo请求。 - undefined

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接