Skip to content

Instantly share code, notes, and snippets.

@kimsk
Created May 14, 2013 01:36
Show Gist options
  • Save kimsk/5572983 to your computer and use it in GitHub Desktop.
Save kimsk/5572983 to your computer and use it in GitHub Desktop.
I add a urlWithParams which is a url with query parameter, for example, https://api.twitter.com/1.1/statuses/home_timeline.json?count=1 The full url will be used by HttpClient. However, when I am building signature string, I have to use the base url, https://api.twitter.com/1.1/statuses/home_timeline.json, and add the query parameter to the sigB…
private async void requestTwitterApi(string url)
{
string nonce = oAuthUtil.GetNonce();
string timeStamp = oAuthUtil.GetTimeStamp();
try
{
HttpClient httpClient = new HttpClient();
httpClient.MaxResponseContentBufferSize = int.MaxValue;
httpClient.DefaultRequestHeaders.ExpectContinue = false;
HttpRequestMessage requestMsg = new HttpRequestMessage();
requestMsg.Method = new HttpMethod("GET");
var urlWithParams = url + "?count=1";
requestMsg.RequestUri = new Uri(urlWithParams);
string sigBaseStringParams = "count=1";
sigBaseStringParams += "&" + "oauth_consumer_key=" + consumerKey.Text;
sigBaseStringParams += "&" + "oauth_nonce=" + nonce;
sigBaseStringParams += "&" + "oauth_signature_method=" + "HMAC-SHA1";
sigBaseStringParams += "&" + "oauth_timestamp=" + timeStamp;
sigBaseStringParams += "&" + "oauth_token=" + accessToken.Text;
sigBaseStringParams += "&" + "oauth_verifier=" + oAuthVerifier.Text;
sigBaseStringParams += "&" + "oauth_version=1.0";
string sigBaseString = "GET&";
sigBaseString += Uri.EscapeDataString(url)+ "&" + Uri.EscapeDataString(sigBaseStringParams);
string signature = oAuthUtil.GetSignature(sigBaseString, consumerSecretKey.Text, accessTokenSecretKey.Text);
string data = "oauth_consumer_key=\"" + consumerKey.Text
+
"\", oauth_nonce=\"" + nonce +
"\", oauth_signature=\"" + Uri.EscapeDataString(signature) +
"\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + timeStamp +
"\", oauth_token=\"" + accessToken.Text +
"\", oauth_verifier=\"" + oAuthVerifier.Text +
"\", oauth_version=\"1.0\"";
requestMsg.Headers.Authorization = new AuthenticationHeaderValue("OAuth", data);
var response = await httpClient.SendAsync(requestMsg);
var text = await response.Content.ReadAsStringAsync();
WebViewHost.Visibility = Windows.UI.Xaml.Visibility.Collapsed;
TwitterResponse.Visibility = Windows.UI.Xaml.Visibility.Visible;
TwitterResponse.Text = text;
}
catch (Exception Err)
{
throw;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment