You need to sign in to do that
Don't have an account?
Help in the last step of Salesforce Linkedin Integration
Hi,
I am in the last step of Salesforce Integration with Linked in. I got oauth_token and oauth_token_secret in my response .
Now i have to use it and make the API call to get the data.
I am trying it with the following code
final String TripItAccessDataUri='https://api.linkedin.com/v1/people/~/format/json';
Http h = new Http();
HttpRequest req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint(TripItAccessDataUri);
final String oAUth_BASE_signature =
SignatureBaseStringForAccessData(TripItAccessDataUri,unAuthorisedToken,unAuthorisedKey,nonceValue,timeStamp ,oauth_token_secret);
String signature = SignatureForAccessData(oAUth_BASE_signature ,consumerKey_Secret+'&'+unAuthorisedKey);
req.setHeader('Authorization','OAuth realm=\"https://api.linkedin.com/\",oauth_nonce=\"'+nonceValue+'\",oauth_signature_method=\"'+oauth_signature_method+'\",oauth_timestamp=\"'+timeStamp+'\",oauth_consumer_key=\"'+oauth_consumer_key+'\",oauth_token=\"'+oauth_token_secret+'\",oauth_signature=\"'+signature+'\",oauth_version=\"'+oauth_version+'\"');
reqstr ='Signature' + signature +'###OAuth realm=\"https://api.linkedin.com/\",oauth_nonce=\"'+nonceValue+'\",oauth_signature_method=\"'+oauth_signature_method+'\",oauth_timestamp=\"'+timeStamp+'\",oauth_consumer_key=\"'+oauth_consumer_key+'\",oauth_token=\"'+oauth_token_secret+'\",oauth_signature=\"'+signature+'\",oauth_version=\"'+oauth_version+'\"';
HttpResponse res = h.send(req);
resData = res.getBody();
public String SignatureBaseStringForAccessData(String TripItAccessDataUri,String unAuthorisedToken,String unAuthorisedKey,String nonceValue ,Long timeStamp, String oauth_token_secret) {
String httpmethod = 'GET';
String oAUTH_PARA='oauth_consumer_key='+oauth_consumer_key+'&oauth_nonce='+nonceValue +'&oauth_signature_method='+oauth_signature_method+'&oauth_timestamp='+timeStamp+'&oauth_token='+oauth_token_secret+'&oauth_version='+oauth_version+'';
String BASE_STRING = httpmethod+'&'+EncodingUtil.urlEncode(TripItAccessDataUri,'UTF-8')+'&'+EncodingUtil.urlEncode(oAUTH_PARA,'UTF-8');
return BASE_STRING;
}
public String SignatureForAccessData(String Signature_Base_Value,String Key){
Blob mac = Crypto.generateMac('HmacSHA1',Blob.valueOf(Signature_Base_Value),Blob.valueOf(Key));
String macUrl = EncodingUtil.urlEncode(EncodingUtil.base64Encode(mac),'UTF-8');
return macUrl;
}
Please have a look at it for 5 mins . any suggestion would be helpful . This is really urgent
Thanks in advance!!
Vineet
I got the data . The issue was with the special character '~' .
I tried using 'https://api.linkedin.com/v1/people/%7E . I returned me the data .
Now my requirement is to get the shared connections between two profiles.
Regards,
Vineet
All Answers
I am getting this in my response. Any clue where i am goin wrong.
<error>
<status>401</status>
<timestamp>1360148215543</timestamp>
<request-id>UXQHGT0XOJ</request-id>
<error-code>0</error-code>
<message>[unauthorized]. The token used in the OAuth request is not valid. xxxxxxxxxxxxxxxxxxxxxx</message>
</error>
After trying with different combinations, now i am getting this error
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <error> <status>401</status> <timestamp>1360221298372</timestamp> <request-id>JL9ONY5YKG</request-id> <error-code>0</error-code> <message>[unauthorized]. OAU:glho500p9lap|xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx|*01|*01:1360221297:Ew4DNQHPIKf1wlb/iD3g9kkpm+I=</message> </error>
Anyone has solution for this
I got the data . The issue was with the special character '~' .
I tried using 'https://api.linkedin.com/v1/people/%7E . I returned me the data .
Now my requirement is to get the shared connections between two profiles.
Regards,
Vineet