/// <summary> /// Возвращает заголовок авторизации, который используется для подписи запросов к серверу Twitter /// </summary> /// <param name="requestMethod">Тип запроса GET или POST</param> /// <param name="baseRequestUrl">Базовый адрес запроса (url запроса без параметров)</param> /// <param name="additionalHeaderParameters">Дополнительные параметры, которые необходимо включить в заголовок авторизации</param> /// <param name="requestParameters">Дополнительные параметры которые будут включены в строку запроса</param> /// <param name="tokenSecret">Секрет маркера. Будет участвовать в созлании подписи</param> /// <returns></returns> protected AuthorizationHeaderInfo GetAuthorizationHeaderInfo(string requestMethod, string baseRequestUrl, Dictionary <string, string> additionalHeaderParameters = null, Dictionary <string, string> requestParameters = null, string tokenSecret = "") { AuthorizationHeaderInfo hInfo = new AuthorizationHeaderInfo { HeaderValue = GetAuthorizationHeaderValue(requestMethod, baseRequestUrl, additionalHeaderParameters, requestParameters, tokenSecret) }; return(hInfo); }
/// <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); }
public string UsersShow(string screen_name, string oauth_token_secret) { string requestMethod = "GET"; string getUsersShowUrl = string.Format("{0}?screen_name={1}", _GetUsersShowUrl, screen_name); HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(getUsersShowUrl); httpRequest.Method = requestMethod; Dictionary <string, string> requestParameters = new Dictionary <string, string>() { { "screen_name", screen_name }, { "include_entities", "true" } }; AuthorizationHeaderInfo authorizationHeaderInfo = GetAuthorizationHeaderInfo(requestMethod, _requestAccessTokenUrl, null, requestParameters, oauth_token_secret); httpRequest.Headers.Add(authorizationHeaderInfo.HeaderName, authorizationHeaderInfo.HeaderValue); return(ReadResponseFrom(httpRequest)); }
/// <summary> /// Возвращает заголовок авторизации, который используется для подписи запросов к серверу Twitter /// </summary> /// <param name="requestMethod">Тип запроса GET или POST</param> /// <param name="baseRequestUrl">Базовый адрес запроса (url запроса без параметров)</param> /// <param name="additionalHeaderParameters">Дополнительные параметры, которые необходимо включить в заголовок авторизации</param> /// <param name="requestParameters">Дополнительные параметры которые будут включены в строку запроса</param> /// <param name="tokenSecret">Секрет маркера. Будет участвовать в созлании подписи</param> /// <returns></returns> protected AuthorizationHeaderInfo GetAuthorizationHeaderInfo(string requestMethod, string baseRequestUrl, Dictionary<string, string> additionalHeaderParameters = null, Dictionary<string, string> requestParameters = null, string tokenSecret = "") { AuthorizationHeaderInfo hInfo = new AuthorizationHeaderInfo { HeaderValue = GetAuthorizationHeaderValue(requestMethod, baseRequestUrl, additionalHeaderParameters, requestParameters, tokenSecret) }; return hInfo; }