2011-11-14 9 views
0

私はWPFアプリケーションでtwitter streaming APIを使いたいと思っています。私はOAuthを使って認証プロセスを完了することができます。私の問題は、私はTwitterからツイートを取得するプロセスを認識していません。誰かが私にツイートを取得して更新するプロセスを理解するのに役立つサンプルアプリケーションを私に提供することはできますか?wffアプリでtwitter streaming APIを使用する

ありがとうございました。

+0

あなたは[Twitterizer](http://www.twitterizer.net)のような図書館を見ましたか?それはおそらくそれをより簡単にするだろう。 – ChrisWay

答えて

1

Twitterのストリームから読むのは簡単です。あなたはリクエストをして、レスポンスストリームを取得し、読み込みを開始するだけです。たとえば:あなたは永遠にそのReadLineループで立ち往生することがありますので、

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(twitter_search_url); 
// this uses password authentication. Change for OAuth 
request.Credentials = new NetworkCredential(TwitterUser, TwitterPassword); 
request.KeepAlive = true; 
request.UserAgent = user_agent_string; 
HttpWebResponse response; 
try 
{ 
    response = (HttpWebResponse)request.GetResponse(); 
    var reader = new StreamReader(response.GetResponseStream()); 
    string line; 
    while ((line = reader.ReadLine()) != null) 
    { 
     // line contains the tweet. 
     // parse with a JSON reader 
    } 
    // end of stream 
} 
catch (... handle exceptions here) 
{ 
} 
finally 
{ 
    response.Close(); 
} 

応答ストリームは、基本的に無限です。

私は上記のコードを少しでも問題なく2、3年間使用してきました。もちろん、プロダクションコードの方がエラー処理が優れていて、ループはShutdownイベントをチェックするので、正常終了することができますが、Twitterストリームの読み込みの仕組みは同じです。

+0

ジム、返事ありがとうございますが、あなたに警告された同じ問題が発生しています。私は無限ループで立ち往生しており、この問題を解決する方法を得ることができません。この無限のストリームからデータを読み取るにはどうすればいいですか? –

+0

@Vibhore:「無限ループ」と言いますと、データがそのまま続くことを意味します。それは決して止まらない。私はストリームを読んでも問題はありません。上のコードは、ストリームの読み込みを停止する手段がありませんが、簡単に追加できます。まさにあなたが抱えている問題です。 –

+0

ジム、最新のつぶやきを得るために、このストリームからすべてのデータを読み込む必要があります。しかし、問題は、InvalidOperationExceptionをスローするときに、ストリームからすべてのデータを読み取ることができないことです。 Stream.ReadToEnd()を使用しようとしています。 –

関連する問題