In last post Search for twitter status updates I showed how you can do simple search. If you do not restrict or constrain your search, twitter will always return you maximum of latest 1500 updates. To make your query more efficient and reduce network traffic, you definitely want to only get results since your last search results. If you notice in the out put from last post, there is a property of status object named Id. Twitter always adds status entries in increasing order of this number. So if you have cached id of the latest results from last result, you can use that to tell twitter to return you the results since that Id only. You can also constrain the results by specifying a date as well. The following code snippet shows how you can perform search by specifying Since search criteria to get results from that point onwards only.
static void SearchForTermSince(string term, int id)
{
IFluentTwitter ft = FluentTwitter.CreateRequest();
ft.AuthenticateAs(LOGIN_NAME, PASSWORD);
ITwitterSearchQuery sq = ft.Search().Query().Containing(term).Since(id);
var searchResults = new List();
var resultsPerPage = 50;
// Maximum results returned from tweeter are 1500.
var totalPages = Math.Ceiling(1500m / resultsPerPage);
for (var i = 1; i <= totalPages; i++)
{
var search = sq.Return(resultsPerPage)
.Skip(i)
.AsJson();
var response = search.Request();
var results = response.AsSearchResult();
searchResults.AddRange(results.Statuses);
}
// Display results
foreach (var status in searchResults)
{
Console.WriteLine("id: {0}", status.Id);
Console.WriteLine(status.FromUserScreenName);
Console.WriteLine(status.CreatedDate);
Console.WriteLine(status.SinceId);
Console.WriteLine(status.Text);
Console.WriteLine("*************************");
}
}
To test it, I used SearchForTermSince("swine", 1881546655);. Notice that id value of 1881546655 is third result from the top from previous run when there was no constraint added to search. Now see the results when I added Since criteria to search. You will notice that results started from id = 1881550472 which was the result right after 1881546655.
id: 1881554462 SwineFluNewsGB 5/22/2009 11:58:39 AM 0 Swine Flu News: H1N1 Swine Flu - Update 46. May 22 http://tinyurl.com/q357wf ************************* id: 1881553402 mgrabois 5/22/2009 11:58:29 AM 0 @thedateabledork In a world without swine flu, I would be leaving for Cancun this morning ;( ************************* id: 1881551912 littlekelsey 5/22/2009 11:58:15 AM 0 sick, at home. i swear i have swine flu. wish i had company <3 ************************* id: 1881550472 MessiahKaeto 5/22/2009 11:58:00 AM 0 @envysays http://twitpic.com/5ooyq - You ain't kidding, I'd be all over that like a swine-flu patients mask!!
Search for Twitter status updates since certain point using REST API
How to plan CCSP Exam preparation
Develop a MongoDB pipeline to transform data into time buckets
Alert and Confirm pop up using BootBox in AngularJS
AngularJS Grouped Bar Chart and Line Chart using D3
How to lock and unlock account in Asp.Net Identity provider
2023 © Byteblocks, ALL Rights Reserved. Privacy Policy | Terms of Use