public string TwitterCallback(string oauth_token, string oauth_verifier) { twOAuth.SetOauthVerifier(oauth_verifier); accessTokenResult = twOAuth.ExchangeRequestTokenToAccessToken(); return accessTokenResult.oauth_token; }
/// <summary> /// Метод обмена маркера на маркер доступа. Т.е. получение маркера с помощью которого можно будет производить запросы к API ServiceProvider'а от имени пользователя. /// <summary> /// <returns></returns> public TwitterAccessTokenResult ExchangeRequestTokenToAccessToken() { string requestMethod = "POST"; // Получаем специфичные для провайдера сервиса параметры запроса Dictionary <string, string> requestParameters = GetRequestParametersForAccessToken(); StringBuilder requestSb = new StringBuilder(AccessTokenUrl); if (requestParameters != null) { requestSb.Append("?"); foreach (var kvp in requestParameters) { AppendOAuthParamToQuery(requestSb, kvp.Key, kvp.Value, true); } // удаляем последнюю запятую requestSb.Remove(requestSb.Length - 1, 1); } string getAccessTokenUrl = requestSb.ToString(); HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(getAccessTokenUrl); httpRequest.Method = requestMethod; // Дополнительные параметры для данного запроса Dictionary <string, string> additionalHeaderParameters = new Dictionary <string, string>() { { "oauth_token", RequestToken } }; AuthorizationHeaderInfo authorizationHeaderInfo = GetAuthorizationHeaderInfo(requestMethod, AccessTokenUrl, additionalHeaderParameters, requestParameters, RequestTokenSecret); httpRequest.Headers.Add(authorizationHeaderInfo.HeaderName, authorizationHeaderInfo.HeaderValue); string result = ReadResponseFrom(httpRequest); TwitterAccessTokenResult accessTokenResult = new TwitterAccessTokenResult(result); return(accessTokenResult); }
/// <summary> /// Метод обмена маркера на маркер доступа. Т.е. получение маркера с помощью которого можно будет производить запросы к API ServiceProvider'а от имени пользователя. /// <summary> /// <returns></returns> public TwitterAccessTokenResult ExchangeRequestTokenToAccessToken() { string requestMethod = "POST"; // Получаем специфичные для провайдера сервиса параметры запроса Dictionary<string, string> requestParameters = GetRequestParametersForAccessToken(); StringBuilder requestSb = new StringBuilder(AccessTokenUrl); if (requestParameters != null) { requestSb.Append("?"); foreach (var kvp in requestParameters) { AppendOAuthParamToQuery(requestSb, kvp.Key, kvp.Value, true); } // удаляем последнюю запятую requestSb.Remove(requestSb.Length - 1, 1); } string getAccessTokenUrl = requestSb.ToString(); HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(getAccessTokenUrl); httpRequest.Method = requestMethod; // Дополнительные параметры для данного запроса Dictionary<string, string> additionalHeaderParameters = new Dictionary<string, string>() { {"oauth_token", RequestToken} }; AuthorizationHeaderInfo authorizationHeaderInfo = GetAuthorizationHeaderInfo(requestMethod, AccessTokenUrl, additionalHeaderParameters, requestParameters, RequestTokenSecret); httpRequest.Headers.Add(authorizationHeaderInfo.HeaderName, authorizationHeaderInfo.HeaderValue); string result = ReadResponseFrom(httpRequest); TwitterAccessTokenResult accessTokenResult = new TwitterAccessTokenResult(result); return accessTokenResult; }