0

いくつかのサービスを提供するつもりですが、いくつかのことについてはよくわかりませんので、できれば助けてください。一部のユーザーのTwitterフィードをリアルタイムで追跡し、ユーザーがフィードにタグを付けたときにサービスで何らかのアクションを実行するにはどうすればよいですか?ソリューションを用意したくありません。どのテクノロジーとサードパーティのライブラリを学ぶ必要があるのか​​を知る必要がありますか?

4

2 に答える 2

1

LINQ to Twitter ( http://linqtotwitter.codeplex.com/ ) は、Twitter ストリームをサポートしています。次に例を示します。

        (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();

これはユーザー ストリームですが、フィルター、サンプル、サイト、およびその他のストリームに対して同様のサポートがあります。

于 2012-08-31T16:46:26.920 に答える
1

1 つの解決策は、Json.Net のようなJsonパーサーでTwitter のストリーミング APIを使用することです。

編集

これがサンプルコードです

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);

}
于 2012-08-31T09:10:13.160 に答える