Created
December 17, 2013 14:42
-
-
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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