Получить все твиты с определенным хэштегом

Я экспериментировал с API Twitter, потому что хочу отобразить несколько списков твитов на специальной странице.

Среди этих списков есть список со всеми твитами, содержащими определенный хэштег (например, #test)

Однако я не могу найти, как получить этот список в XML или JSON (желательно последний), кто-нибудь знает, как? Также хорошо, если это можно сделать в TweetSharp

5 ответов

Решение

Вы можете просто получить http://search.twitter.com/search.json?q=%23test чтобы получить список твитов, содержащих #test в JSON, где %23test является #test URL закодирован.

Я не знаком с TweetSharp, но я думаю, что должно быть search команда, которую вы можете использовать для поиска #test, а затем преобразовать полученные твиты в JSON самостоятельно.

Сначала установите TweetSharp с помощью github https://github.com/danielcrenna/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);

Похоже, что в API произошли изменения за последние несколько месяцев. Вот обновленный код:

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

Я боролся с той же проблемой. Вот мое расплывчатое решение. Наслаждайтесь программированием. Он выйдет из функции всякий раз, когда будет получено / получено необходимое количество твитов.

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

}

У вас есть доступ с этим URL для поиска в твиттере. Но вы должны использовать протоколы OAuth.

https://api.twitter.com/1.1/search/tweets.json?q=%40twitterapi

Другие вопросы по тегам