2012-08-31 38 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

感謝這也是我會檢查出來的 –