Reputation: 1923
I am going to make some service, but I am not sure about few things so please help if you could. How to track in real time Twitter feed of some user, and make some action in my service when user put some tag in his feed? I don't want to ready solution, I have to know just what technologies and 3rd party libraries I have to learn?
Upvotes: 0
Views: 2103
Reputation: 7513
LINQ to Twitter, http://linqtotwitter.codeplex.com/, supports Twitter streams. Here's an example:
(from strm in twitterCtx.UserStream
where strm.Type == UserStreamType.User
select strm)
.StreamingCallback(strm =>
{
if (strm.Status == TwitterErrorStatus.RequestProcessingException)
{
WebException wex = strm.Error as WebException;
if (wex != null && wex.Status == WebExceptionStatus.ConnectFailure)
{
Console.WriteLine(wex.Message + " You might want to reconnect.");
}
Console.WriteLine(strm.Error.ToString());
return;
}
Console.WriteLine(strm.Content + "\n");
if (count++ >= 25)
{
strm.CloseStream();
}
})
.SingleOrDefault();
That's a user stream, but you have similar support for filter, sample, site, and other streams.
Upvotes: 1
Reputation: 116138
One solution can be using Twitter's streaming API with a Json parser like Json.Net
EDIT
Here is a sample code
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://stream.twitter.com/1/statuses/sample.json");
webRequest.Credentials = new NetworkCredential("....", "......");
webRequest.Timeout = -1;
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
StreamReader responseStream = new StreamReader(webResponse.GetResponseStream());
while (true)
{
var line = responseStream.ReadLine();
if (String.IsNullOrEmpty(line)) continue;
dynamic obj = JsonConvert.DeserializeObject(line);
if (obj.user != null)
Console.WriteLine(obj.user.screen_name + ": " + obj.text);
}
Upvotes: 1