LinkedIn API returns 403 when requesting companies list - linkedin

We use the LinkedIn API to list companies that a user admins.
We have our App set to get r_fullprofile and rw_company_admin when the user grants permission.
We're trying to list all of the companies the user has admin access to via:
http://api.linkedin.com/v1/companies:(id,name,square-logo-url)?is-company-admin=true
<error>
<status>403</status>
<timestamp>1432323149224</timestamp>
<request-id>XXXXXXXXXX</request-id>
<error-code>0</error-code>
<message>Member [user id] does not have permission to get companies as admin.</message>
</error>
According to the Manage Company Pages docs, as long as we have the rw_company_admin scope, we should be able to call this endpoint.
I've read through the Developer Program Transition docs (https://developer.linkedin.com/support/developer-program-transition) but it doesn't seem to affect this usage of the API.
ETA: This has been flagged as a possible duplicate of LinkedIn API unable to view _any_ company profile
That question is about fetching details for a single company (which the user may or may not administrate). My question is about listing companies that the user specifically does administrate.

According to new api changes user should be administrator of target company. Read this .
All calls to Companies API endpoints will require the authenticated user to be flagged as an administrator of the LinkedIn Company Page that is the target of the API call. You become the administrator of a page when you create it. If the page already exists, you will have to contact the existing administrator to grant admin access to other LinkedIn members.

I faced the same problem and the problem was with the initial authorization code. You should mention the scope=rw_company_admin while doing the initial redirect URL call. Something like this -
https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=your_client_id&redirect_uri=https%3A%2F%2Fwww.google.com/&state=12345&scope=rw_company_admin%20r_emailaddress%20w_share%20r_basicprofile

Related

LinkedIn API likes/shares/comments

We have been trying to pull in like/comments for LinkedInposts that have been made by our application but it seems we are getting an error message. I am posting this on behalf of my developer. We have these products enabled.
Share on LinkedIn, Sign in with LinkedIn and Marketing Developer Platform
We have these permissions:
r_organization_social
r_1st_connections_size
r_ads_reporting
r_emailaddress
rw_organization_admin
r_liteprofile
r_basicprofile
r_ads
rw_ads
w_member_social
In trying to determine what might be happening my developer seems to think we must have r_member_social but seems to be a restricted permission per the LI faq.
"How do I get access to r_member_social?
r_member_social is a closed permission, and we are not accepting access requests this time due to resource constraints. Learn more about available Marketing APIs and permissions."
But in looking into this my thinking is that we should be able to get any likes/comments from posts that WE have made on behalf of an authenticated user via r_organization_social.
You don't have enough permissions to access the post as r_member_social is needed for it, and currently it is restricted by linkedIn.
The r_organization_social permission is used to Retrieve the organization's posts, comments, reactions, and other engagement data of the authenticated user.
It is something, that suppose your authenticated member has a page on LinkedIn and then This permission is used to get the data of the post that are from the organization page. It does not allow you to the data of the simple post that you post as the user.
More detail about the permissions can be found here.
r_member_social is needed for it, and currently, it is restricted by LinkedIn. There are just providing w_member_social access. You can check that as well by selecting your app from My Apps, navigating to the Products tab, going to the Marketing Developer Platform product, and clicking on view endpoints. then you will be able to see the permissions available.
Alternatively, you can explore this marketing documentation more.

LinkedIn access to Basic Profile

We have developed a signup via LinkedIn app.
We currently get the default “lite profile” but need access to the “basic profile”
We’ve tried reaching out to all parts of LinkedIn but to no avail.
The links to the Partner Program Page also seem deprecated.
Can someone please share how we can get the upgraded permissions pls?
To access any of the basic profile fields, your application must request the r_basicprofile member permission. Check out the field names here
To access email address your application must request the r_emailaddress member permission with field name email-address

Accessing LinkedIn company's activity feed as non-admin

I'm writing an application that is supposed to aggregate a company's social media platforms in one page. To do this I need to be able to access the company's activity feed.
When I signed up as a company for API access I enlisted my Application under Social Aggregation, the only permissions I was given are r_basicprofile, r_emailaddress, rw_company_admin and w_share. None of these allow access to the activity feed, outside of rw_company_admin, which only allows the administrator of the company access to the feed, not another user.
Due to the 60-day lifecycle of the OAUTH2 token I'm unable to make the API call as an administrator on the background, since permission needs to be granted by a log-in.
This is what I have access too.
https://developer.linkedin.com/docs/company-pages#company_updates
I think I'd be able to achieve my goal with this;
https://developer.linkedin.com/docs/guide/v2/shares/activity-feed
However, I need to be a LinkedIn partner to be able to make those API calls, and I'm not looking to access a user's entire feed. Just the feed of the company he is working for.
Organization shares can only be retrieved if the authorized member is also an administrator of the organization.

Linkedin Oauth2 Client Credentials grant type

Asking the question here as the linkedin help forum directed to post things related to API on stackoverflow.
I am developing a feature on our org website to show the top 5 company page feeds setup in linkedin. Ive already setup the required access in developer.linkedin and the whole flow works in the developer.linkedin REST console to fetch the feed.
I am currently recieving this error when i try from my machine to fetch the auth token with a valid client id and secret created.
https://www.linkedin.com/oauth/v2/accessToken?grant_type=client_credentials&client_id=OMITTED&client_secret=OMITTED
{
"error": "access_denied",
"error_description": "This application is not allowed to create application tokens" }
The documentation also mentions that this flow isn't available by default and the users will need to contact linkedin.
https://developer.linkedin.com/docs/v2/oauth2-client-credentials-flow
"By default, your application will not have the ability to use LinkedIn's client credentials flow. Contact us to have your application granted permission to use this flow."
What would be the next steps in requesting access to this flow for my org?.
As outlined here:
By default, your application will not have the ability to use LinkedIn's client credentials flow. Contact us to have your application granted permission to use this flow.
The next step would be to contact them directly or Apply to become a Partner
and if accepted you'll be granted access to additional data outside of the scope of the user authentication flow (which basically means you'll be able to make calls directly from your application to access certain information)
I think the answer is well explained by API-University, since the creation of an application in order to get the access_token, will solve the communication issue.
Link to the explanation: https://api-university.com/blog/api-usage/how-to-use-the-linkedin-api-and-oauth/

LinkedIn API unable to view _any_ company profile

I'm trying to figure out how to access any company profile on LinkedIn. For example, the REST endpoint API for LinkedIn itself is:
https://api.linkedin.com/v1/companies/1337?format=json
with the sample response of:
{
"id": 1337,
"name": "LinkedIn"
}
However, after authenticating with OAuth2 with rw_company_admin enabled, my app returns:
{
"errorCode": 0,
"message": "Member 206xxxxxx does not have permission to get company 1337",
"requestId": "G6LNMCEZO8",
"status": 403,
"timestamp": 1432358171348
}
This worked up until very recently.
The documentation does note that "In order to perform any of the company page management API calls below, the authenticated LinkedIn user making the requests must be an administrator of the target company." Confusingly, it also says that "The following endpoints are the only ones that will remain available for use... Companies API — /v1/companies/{id}".
However, my goal isn't to manage a company as an admin, it's to show a user a brief output of the company. How can I get company info?
It looks like they turned that feature off.
See https://developer.linkedin.com/support/developer-program-transition
New requirement for Companies API
All calls to Companies API endpoints will require the authenticated
user to be flagged as an administrator of the LinkedIn Company Page
that is the target of the API call. You become the administrator of a
page when you create it. If the page already exists, you will have to
contact the existing administrator to grant admin access to other
LinkedIn members.
Your API call will return a 403 Forbidden error if you do not have the
appropriate admin permission to interact with the target company.
And in the first line,
On February 12th 2015 we announced a series of changes to our
developer program. These changes have now begun to take affect and
will be rolled out to the entire LinkedIn application base between May
12th - May 19th, 2015.
So we are out of luck.
For accessing the company details from LinkedIn you must make a authenticated request(You must be the administrator of the company). For authenticated calls follow this link. https://developer.linkedin.com/docs/oauth2#!
Anyway, you must have the permission rw_company_admin to access the company details. For that, you must check Default Application Permissions in your App settings and also important to note that when you request for an Authorization Code you must specify the scope.
Use this method to get an authorization code for a company
https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=123456789&redirect_uri=https%3A%2F%2Fwww.example.com%2Fauth%2Flinkedin&state=987654321&scope=rw_company_admin
I had issues with this as well even though I was definitely a company admin. Once I added that company as my current place of work on my profile, the API started to respond as expected.

Resources