Вот пример кода из https://code.msdn.microsoft.com/windowsapps/LinkedIn-OAuth-20-Example-408dd568:
private async Task getAuthorizeCode()
{
var url = "https://www.linkedin.com/uas/oauth2/authorization?response_type=code"
+ "&client_id=" + _consumerKey
+ "&scope=" + Uri.EscapeDataString(_scope)
+ "&state=STATE"
+ "&redirect_uri=" + Uri.EscapeDataString(_callbackUrl);
log(url);
var startUri = new Uri(url);
var endUri = new Uri(_callbackUrl);
WebAuthenticationResult war = await WebAuthenticationBroker.AuthenticateAsync(
WebAuthenticationOptions.None,
startUri,
endUri);
switch (war.ResponseStatus)
{
case WebAuthenticationStatus.Success:
{
// grab access_token and oauth_verifier
var response = war.ResponseData;
IDictionary<string, string> keyDictionary = new Dictionary<string, string>();
var qSplit = response.Split('?');
foreach (var kvp in qSplit[qSplit.Length - 1].Split('&'))
{
var kvpSplit = kvp.Split('=');
if (kvpSplit.Length == 2)
{
keyDictionary.Add(kvpSplit[0], kvpSplit[1]);
}
}
_authorizationCode = keyDictionary["code"];
break;
}
case WebAuthenticationStatus.UserCancel:
{
log("HTTP Error returned by AuthenticateAsync() : " + war.ResponseErrorDetail.ToString());
break;
}
default:
case WebAuthenticationStatus.ErrorHttp:
log("Error returned by AuthenticateAsync() : " + war.ResponseStatus.ToString());
break;
}
}