2011-03-13 103 views
6

我一直在试验Twitter API,因为我想在特殊页面上显示一些推文列表。获取所有带有特定标签的推文

在这些名单是包含特定主题标签的所有微博列表(例如#test

但是我无法找到如何让XML或JSON(最好是后者),该列表中,没有人知道如何?这也是好的,如果它能够在TweetSharp

回答

7

做你可以简单地取http://search.twitter.com/search.json?q=%23test得到的JSON,其中%23test#test URL编码含#test鸣叫的列表。

我不熟悉TweetSharp,但我想必须有一个search命令,您可以使用它来搜索#test,然后将生成的tweets自己转换为JSON。使用github上 https://github.com/danielcrenna/tweetsharp

这里是代码做搜索

+0

太糟糕的服务(search.twitter.com)似乎是降低经常:( 是否有使用api.twitter.com – dtech 2011-03-13 20:31:54

+13

任何替代这不再工作 – 2013-06-17 09:50:16

+1

** IT'S不再工作......不要浪费你的时间** – 2015-07-02 06:03:35

9

首先安装TweetSharp

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

如果你有一个以上的页面结果,你可以设置一个循环,并呼吁每个页面

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

循环如何工作超过 一页? – 2015-12-10 08:50:20

+0

链接不起作用 – gonephishing 2017-03-07 14:18:58

4

似乎自从过去几个月以来API发生了变化。这里是更新后的代码:

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

我挣扎着同样的问题。这是我模糊的解决方案。享受编程。 只要您获取/获取所需的推文数量,它就会退出该功能。

 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 { } 
       } 

}

相关问题