Skip to content

Instantly share code, notes, and snippets.

@kensykora
Created December 17, 2013 14:42
Show Gist options
  • Save kensykora/8005935 to your computer and use it in GitHub Desktop.
Save kensykora/8005935 to your computer and use it in GitHub Desktop.
Streaming sample using TweetSharp - outputs raw JSON to console of received stream objects
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using TweetSharp;
namespace tweet_sharp_streaming
{
class Program
{
const string _consumerKey = "";
const string _consumerSecret = "";
const string _accessToken = "";
const string _accessTokenSecret = "";
static void Main(string[] args)
{
const int maxStreamEvents = 5;
var block = new AutoResetEvent(false);
var count = 0;
var service = GetAuthenticatedService();
service.StreamUser((streamEvent, response) =>
{
if (streamEvent is TwitterUserStreamEnd)
{
block.Set();
}
if (response.StatusCode == 0)
{
if (streamEvent is TwitterUserStreamFriends)
{
var friends = (TwitterUserStreamFriends)streamEvent;
Console.WriteLine(streamEvent.RawSource);
}
if (streamEvent is TwitterUserStreamEvent)
{
var @event = (TwitterUserStreamEvent)streamEvent;
Console.WriteLine(streamEvent.RawSource);
}
if (streamEvent is TwitterUserStreamStatus)
{
var tweet = ((TwitterUserStreamStatus)streamEvent).Status;
Console.WriteLine(streamEvent.RawSource);
}
if (streamEvent is TwitterUserStreamDirectMessage)
{
var dm = ((TwitterUserStreamDirectMessage)streamEvent).DirectMessage;
Console.WriteLine(streamEvent.RawSource);
}
if (streamEvent is TwitterUserStreamDeleteStatus)
{
var deleted = (TwitterUserStreamDeleteStatus)streamEvent;
Console.WriteLine(streamEvent.RawSource);
}
if (streamEvent is TwitterUserStreamDeleteDirectMessage)
{
var deleted = (TwitterUserStreamDeleteDirectMessage)streamEvent;
Console.WriteLine(streamEvent.RawSource);
}
count++;
if (count == maxStreamEvents)
{
block.Set();
}
}
else
{
Console.Error.WriteLine("Unable to start stream");
}
});
block.WaitOne();
service.CancelStreaming();
}
private static TwitterService GetAuthenticatedService()
{
var service = new TwitterService(_consumerKey, _consumerSecret);
service.TraceEnabled = true;
service.AuthenticateWith(_accessToken, _accessTokenSecret);
return service;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment