Any queries to the api.linkedin.com/v2/ return “Not enough permissions to access …”

拟墨画扇 提交于 2019-12-17 07:22:20

问题


  1. I got the Access Token (with scope: r_basicprofile rw_company_admin w_share) using the Client ID, Client Secret at following URLs:
    • https://www.linkedin.com/oauth/v2/authorization
    • https://www.linkedin.com/oauth/v2/accessToken
  2. Make request to the https://api.linkedin.com/v2/me endpoint

    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
    
  3. Get response:

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

Similar erroneous responses are returned to any requests for https://api.linkedin.com/v2/

In official documentation there is difference requirements to headers:

  • X-Rest**l**i-Protocol-Version
  • X-Rest**L**i-Protocol-Version

But I tried both, and nothing worked.

Requests to the https://api.linkedin.com/v1/ (using the same token) successfully return data.

Please, tell me what I'm doing wrong.


回答1:


You need to request permissions from LinkedIn.

Now all requests to api.linkedin.com/v2/ successfully pass to me!

We received permissions (r_ad_campaigns and rw_organization) after request offer by address https://business.linkedin.com/marketing-solutions/marketing-partners/become-a-partner/marketing-developer-program

Leave a request at the address below and LinkedIn will answer you.

Good luck!




回答2:


Use r_liteprofile instead of r_basicprofile during the first step of Authorization. This will solve your issue.




回答3:


API access changed and what you received with only 1 API call, now has to be rewritten to make multiple API calls

Before, using scope "r_basicprofile, r_emailaddress" you could get

  • User basic info as name, location etc
  • LinkedIn user profile URL
  • Email
  • Avatar image

Now you can use "r_basicprofile" that will get you user LinkedIn public URL only if you are in a partner program, and it is not easy to get in!

If you want to get access_token which you can use to get basic profile info + email, now you have to request it with a scope "r_liteprofile,r_emailaddress"

and use this 3 API calls to get all the details, unfortunately without Linkedin public URL (if anyone knows how to get this, please comment so I can modify the answer)

  1. profile info - https://api.linkedin.com/v2/me
  2. email - https://api.linkedin.com/v2/clientAwareMemberHandles?q=members&projection=(elements*(primary,type,handle~))
  3. profile image - https://api.linkedin.com/v2/me?projection=(id,profilePicture(displayImage~:playableStreams))
  4. public profile URL - not possible!

Acess token

Use this link for retrival description

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



来源:https://stackoverflow.com/questions/46960458/any-queries-to-the-api-linkedin-com-v2-return-not-enough-permissions-to-access

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!