Adsense_top

2009年8月22日土曜日

C# Twitter API ストリーム系.. その3

C# Twitter API ストリーム系に挑戦してみる」「C# Twitter API ストリーム系.. その2」の続きです。
前回までに書いたコードの使用方法を確認の意味で書いていきます。まだ読まれていいない方はそちらもお読みください。


分かりやすいようにForm1上にstartButtonとstopButtonがあるものとして書いていきます。
まずは、Twitterサーバーへの要求の開始のしかたです。



private void startButton_Click(object sender, EventArgs e)
{
this.Received += new ReceiveEventHandler(Form1_Received);
ArgsObject obj = new ArgsObject("user", "password",
@"http://stream.twitter.com/follow.xml",
HttpMethod.POST,
new string[] { "follow=42123706" }, 2048);
Thread thread = new Thread(this.Execute);
thread.Start(obj);
}

ArgsObjectクラスのコンストラクタの引数は、順に アカウント名・パスワード・ファイル形式を指定した形でのAPIのURL・HTTPメソッド・APIの引数の配列・読み取りストリームのバッファサイズです。

ここで引数に使用しているIDは、「Google_News_jp」のものです。


受信待機を中止する場合は、Stopメソッドを呼び出します。


最初のコードで割り当てているイベントで受信内容を受け取ります。



void Form1_Received(string result)
{
Console.WriteLine(result);
}

ここでは、コンソールに書きだしていますが実際にコントロール上に表示するのであれば、「InvokeRequired」の確認して、delegateを介して操作するように変更してください。また今回は、「stream.twitter.com/follow.format」APIの受信内容が一度に受けられるバッファサイズを指定しましたが、イベントはバッファサイズ毎に起動されますので、一度のイベントで1レコードではないので、レコードの切れ目などを判定する必要がある場合がありますので注意してください。
他注意点としては、接続維持のための決まったデータが一定時間ごとに送られて来ますので捨てる必要があります。実際の受信間隔、受信データはテストして実際に確認してみてください。


0 件のコメント:

コメントを投稿