Получить все твиты с определенным хэштегом
Я экспериментировал с 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