Integrate Twitter API in Asp.net
Introduction
In this Blog I will explain how to integrate Twitter API with C# Asp.net.
Before Going to start twitter API integration we should do following steps:
– You should have twitter account.
1) Authorize your account in twitter and open https://apps.twitter.com/,create new app button
2) Provide application name should be unique, description and website URL can be dummy:
3) Scroll bottom, accept checkbox and click create your twitter application
4) Your app created, go keys and access tokens tab
5) Copy the API key and API secret to clipboard
6) Paste them to notepad in this form
This string should be base64-encoded I using https://www.base64encode.org/ with UTF-8
Encoded string:
Encoded string is credentials to get bearer access token for application. Access token should be get programmatically on every application run and should not store anywhere
Using the Code in ASP.NET
Note:- Do not forgot twitter anywhere supports https requests only not http.
To get bearer access token send http post request and pass credentials to Authorization header
string credentials =”bDZuekx3cVNCTTV3Y3hNYTE4WTY5Vlh6WTpzMXJ3UTNxb1pZWGl3TzJCWUpsT25LSG5aSlZCU09nQUdLOVpQblRjSHdPMnJ5MXhhRA==”;
string access_token = “”;
var post = WebRequest.Create(“https://api.twitter.com/oauth2/token”) as HttpWebRequest;
post.Method = “POST”;
post.ContentType = “application/x-www-form-urlencoded”;
post.Headers[HttpRequestHeader.Authorization] = “Basic ” + credentials;
var reqbody = Encoding.UTF8.GetBytes(“grant_type=client_credentials”);
post.ContentLength = reqbody.Length;
using (var req = post.GetRequestStream())
{
req.Write(reqbody, 0, reqbody.Length);
}
try
{
string respbody = null;
using (var resp = post.GetResponse().GetResponseStream())//there request sends
{
var respR = new StreamReader(resp);
respbody = respR.ReadToEnd();
}
//TODO use a library to parse json
access_token = respbody.Substring(respbody.IndexOf(“access_token\”:\””) + “access_token\”:\””.Length, respbody.IndexOf(“\”}”) – (respbody.IndexOf(“access_token\”:\””) + “access_token\”:\””.Length));
}
catch //if credentials are not valid (403 error)
{
//TODO
}
//rest api using
var gettimeline = WebRequest.Create(“https://api.twitter.com/1.1/statuses/user_timeline.json?count=3&screen_name=twitterapi”) as HttpWebRequest;
gettimeline.Method = “GET”;
gettimeline.Headers[HttpRequestHeader.Authorization] = “Bearer ” + access_token;
try
{
string respbody = null;
using (var resp = gettimeline.GetResponse().GetResponseStream())//there request sends
{
var respR = new StreamReader(resp);
respbody = respR.ReadToEnd();
}
//TODO use a library to parse json
Response.Write(respbody);
}
catch //401 (access token invalid or expired)
{
//TODO
}
//invalidating un necessary access token
var inv = WebRequest.Create(“https://api.twitter.com/oauth2/invalidate_token”) as HttpWebRequest;
inv.Method = “POST”;
inv.ContentType = “application/x-www-form-urlencoded”;
inv.Headers[HttpRequestHeader.Authorization] = “Basic ” + credentials;
var reqbodyinv = Encoding.UTF8.GetBytes(“access_token=” + access_token);
inv.ContentLength = reqbodyinv.Length;
using (var req = inv.GetRequestStream())
{
req.Write(reqbodyinv, 0, reqbodyinv.Length);
}
try
{
post.GetResponse();
}
catch //token not invalidated
{
//TODO
}
Results
In addition you can read more about ASP.NET web forms application