//Function to get LinkedIn user profile data using LinkedIn auth token
public LinkedinProfileDetailsDTO ValidateLinkedinTokenAndGetProfileDetails(string tokenCode)
{
try
{
LinkedinTokenDTO LinkedinToken = GenerateLinkedinToken(tokenCode);
var request = new RestRequest(Method.GET);
LinkedinProfileDetailsDTO profiledata = new LinkedinProfileDetailsDTO();
if (LinkedinToken != null && !string.IsNullOrWhiteSpace(LinkedinToken.access_token))
{
var client = new RestClient("https://api.linkedin.com/v2/me");
client.Timeout = -1;
request.AddHeader("Host", "api.linkedin.com");
request.AddHeader("Connection", "Keep-Alive");
request.AddHeader("Authorization", "Bearer " + LinkedinToken.access_token);
IRestResponse response = client.Execute(request);
profiledata = JsonConvert.DeserializeObject<LinkedinProfileDetailsDTO>(response.Content);
}
return profiledata;
}
catch (Exception ex)
{
}
return null;
}
///-----------------------Response Model Class's to receive and parse response----------------------
public class LinkedinProfileDetailsDTO
{
public string localizedLastName { get; set; }
public FirstName firstName { get; set; }
public LastName lastName { get; set; }
public string id { get; set; }
public string localizedFirstName { get; set; }
public string emailAddress { get; set; }
}
public class Localized
{
public string en_US { get; set; }
}
public class PreferredLocale
{
public string country { get; set; }
public string language { get; set; }
}
public class FirstName
{
public Localized localized { get; set; }
public PreferredLocale preferredLocale { get; set; }
}
public class LastName
{
public Localized localized { get; set; }
public PreferredLocale preferredLocale { get; set; }
}
public class LinkedinTokenDTO
{
public string access_token { get; set; }
public int expires_in { get; set; }
}
No comments:
Post a Comment