2012-08-31 40 views
0

我打算提供一些服务,但我不确定几件事情,所以请尽可能帮忙。 如何实时跟踪某个用户的Twitter Feed,并在用户在Feed中添加标签时在我的服务中进行一些操作?我不想准备好解决方案,我必须知道我需要学习哪些技术和第三方库?如何实时跟踪Twitter Feed?

回答

1

一种解决方案可以使用Twitter's streaming API与JSON分析器等Json.Net

EDIT

下面是一个示例代码

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

} 
+0

好的,我会读一下,但客户端怎么样? –

1

LINQ到Twitter,http://linqtotwitter.codeplex.com/,支持微流。这里有一个例子:

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

这是一个用户流,但你必须对过滤器,样品,站点和其他流类似的支持。

+0

感谢这也是我会检查出来的 –