问题
- 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
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
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
- 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)
- profile info -
https://api.linkedin.com/v2/me
- email -
https://api.linkedin.com/v2/clientAwareMemberHandles?q=members&projection=(elements*(primary,type,handle~))
- profile image -
https://api.linkedin.com/v2/me?projection=(id,profilePicture(displayImage~:playableStreams))
- 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