2011-03-13 13 views
6

He estado experimentando con la API de Twitter porque quiero mostrar algunas listas de tweets en una página especial.Obtenga todos los tweets con un hashtag específico

Entre esas listas es una lista con todos los tweets que contiene un hashtag específico (por ejemplo #test)

Sin embargo no puedo encontrar la manera de conseguir que la lista en XML o JSON (preferiblemente el último), ¿alguien sabe cómo? También está muy bien si se puede hacer en TweetSharp

Respuesta

7

puede simplemente ir a buscar http://search.twitter.com/search.json?q=%23test para obtener una lista de tweets que contienen #test en JSON, donde %23test es #test URL codificada.

No estoy familiarizado con TweetSharp, pero supongo que debe haber un comando search que puede usar para buscar #test, y luego transformar los tweets resultantes en JSON usted mismo.

+0

Lástima que el servicio (search.twitter.com) parece estar abajo con frecuencia :( ¿Hay alguna alternativa usando api.twitter.com – dtech

+13

Esto ya no está trabajando –

+1

** ES NO DEJAR DE TRABAJAR ... NO PIERDAS TU TIEMPO AQUÍ ** –

9

Primero instale TweetSharp usando github https://github.com/danielcrenna/tweetsharp

Aquí está el código para hacer una búsqueda

TwitterService service = new TwitterService(); 
var tweets = service.Search("#Test", 100); 
List<TwitterSearchStatus> resultList = new List<TwitterSearchStatus>(tweets.Statuses);  

Si usted tiene más de una página de resultados se puede configurar un bucle y llamar a cada página

service.Search("#Test", i += 1, 100); 
+0

Cómo funcionará el bucle durante más de ¿una página? –

+0

el enlace no funciona – gonephishing

4

Parece que hay un cambio en el API desde los últimos meses. Aquí está el código actualizado:

TwitterSearchResult res = twitter.Search(new SearchOptions { Q = "xbox" }); 
IEnumerable<TwitterStatus> status = res.Statuses; 
0

tuve problemas con el mismo problema. Aquí está mi solución vaga. Disfruta de la programación. Saldrá de la función cada vez que se obtenga/obtenga su número requerido de tweets.

 string maxid = "1000000000000"; // dummy value 
     int tweetcount = 0; 


     if (maxid != null) 
     { 
      var tweets_search = twitterService.Search(new SearchOptions { Q = keyword, Count = Convert.ToInt32(count) }); 
      List<TwitterStatus> resultList = new List<TwitterStatus>(tweets_search.Statuses); 
      maxid = resultList.Last().IdStr; 
      foreach (var tweet in tweets_search.Statuses) 
      { 
       try 
       { 
        ResultSearch.Add(new KeyValuePair<String, String>(tweet.Id.ToString(), tweet.Text)); 
        tweetcount++; 
       } 
       catch { } 
      } 

      while (maxid != null && tweetcount < Convert.ToInt32(count)) 
      { 
       maxid = resultList.Last().IdStr; 
       tweets_search = twitterService.Search(new SearchOptions { Q = keyword, Count = Convert.ToInt32(count), MaxId = Convert.ToInt64(maxid) }); 
       resultList = new List<TwitterStatus>(tweets_search.Statuses); 
       foreach (var tweet in tweets_search.Statuses) 
       { 
        try 
        { 
         ResultSearch.Add(new KeyValuePair<String, String>(tweet.Id.ToString(), tweet.Text)); 
         tweetcount++; 
        } 
        catch { } 
       } 

}

Cuestiones relacionadas