16

I am working on that application allow user to connect to linkedin (using javascript). I want to store access token that I got from IN.ENV.auth.oauth_token because I will use it to post to user's timeline.

But when I use this access token to post to Linkedin, I got "Invalid access token" error. Did I use correct access token? How's the correct way to get Access token?

Here's my code:

$("#linkedin-connect").on('click',function(e){  
    e.preventDefault();
    IN.UI.Authorize().place();
    IN.Event.on(IN, "auth", OnLinkedInAuth);  
    return false;
});

function OnLinkedInAuth() {
    console.debug("oauth token:" + IN.ENV.auth.oauth_token);
}

JSFiddle Example

10
  • Did you get that token from an OAuth authentication using the LinkedIn API? Commented Jul 22, 2015 at 3:47
  • 2
    I followed the instructions here developer.linkedin.com/docs/js-sdk. On the callback function I captured IN.ENV.auth.oauth_token; If its not the correct acces token, how's the correct way to get it? Commented Jul 22, 2015 at 7:40
  • 5
    So it looks like there is no answers ? Commented Aug 30, 2016 at 12:34
  • 3
    The oauth tokens you get via JS api cannot be used server-side. I have debugged how JS uses them and they are passed via "oauth_token: ..." HTTP header instead of the "Authorization: Bearer ...". However when you try it that way from your server-side you will get the error "[unauthorized]. IP Address Mismatch" back from LinkedIn. Apparently they link the client IP address with the oauth token. Honestly I think the JS API is completely useless like this because if you can't verify/use the token server-side you basically cannot trust any of the information. Commented Jan 5, 2018 at 0:46
  • 1
    @vinitpayal I ended up using their REST API instead Commented Apr 11, 2018 at 20:54

1 Answer 1

1

this event IN.Event.on(IN, "auth", OnLinkedInAuth); should pass some data to your function OnLikedInAuth as in shown in the documentation of the sdk.

<script type="text/javascript" src="//platform.linkedin.com/in.js">
    api_key: YOUR_API_KEY_HERE
    authorize: true
    onLoad: onLinkedInLoad
</script>

<script type="text/javascript">

// Setup an event listener to make an API call once auth is complete
function onLinkedInLoad() {
    IN.Event.on(IN, "auth", getProfileData);
}

// Handle the successful return from the API call
function onSuccess(data) {
    console.log(data);
}

// Handle an error response from the API call
function onError(error) {
    console.log(error);
}

// Use the API call wrapper to request the member's basic profile data
function getProfileData() {
    IN.API.Raw("/people/~").result(onSuccess).error(onError);
}

As that example (available in docs) the getProfileData (similar to your OnLinkedInAuth) returns a Promise and when it's resolved will give you some data that you need to read. In that object you will find the token that you can store (LocalStorage) and use

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.