Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to test if LinkedIn token is still valid and re-use? #519

Closed
NebularNerd opened this issue Oct 30, 2023 · 2 comments
Closed

How to test if LinkedIn token is still valid and re-use? #519

NebularNerd opened this issue Oct 30, 2023 · 2 comments

Comments

@NebularNerd
Copy link

NebularNerd commented Oct 30, 2023

I've followed and adapted the code example for LinkedIn shown here LinkedIn Example and so far so good. I can generate an OAuth code and hand it off to make an access token, which then runs the next step:

>>> # Fetch the access token
>>> linkedin.fetch_token(token_url, client_secret=client_secret,
...                      include_client_id=True,
...                      authorization_response=redirect_response)

This also runs and then 403 errors as I don't have access to the me api scopes but thats ok.

I'm trying to find where the access token from the fetch_token is stored and how to test if it's still valid so I can use it on the next run.

Any help on this would be great 🙂

@NebularNerd
Copy link
Author

A night's sleep and some strong coffee and I have figured that bit out 😁

For anyone searching this, change the above to:

# Fetch the access token
token = linkedin.fetch_token(token_url, client_secret=client_secret,
                     include_client_id=True,
                      authorization_response=redirect_response)
print (token)

This will give you the a reply similar to below, with your token and expiration in seconds (about 60 days):

{'access_token': 'big_long_alphanumeric_token_string_you must_not_share_with_anyone', 'expires_in': 5183999, 'scope': ['w_member_social'], 'expires_at': 1703931864.3299844}

Depending on your access level etc.. you may also at get your refresh token in this reply. Next step, let's figure out how to pass this to the .get request

@NebularNerd
Copy link
Author

NebularNerd commented Oct 31, 2023

OK found out how to get this working (I think, I need to re-auth my LinkedIn app for company page scopes)

To add the auth token to your requests update the following:

>>> # Fetch a protected resource, i.e. user profile
>>> r = linkedin.get('https://api.linkedin.com/v2/me')
>>> print(r.content)

to:

v = 202402 # Check the API docs for the current API version as they do no update regularly like I thought
token = "big_long_alphanumeric_token_string_you must_not_share_with_anyone"
linkedin.headers.update({"Authorization": f'Bearer {token}',"LinkedIn-Version": v,"X-Restli-Protocol-Version": "2.0.0"})
r = linkedin.get('https://api.linkedin.com/v2/me')
print(r.content)

I'm getting errors at present due to my scopes, but it's passing the access token over a treat. 😁

I shall close this for now but will leave it here and update for others to find if it helps.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant