In my app I use http://search.twitter.com/search.json?q=from:sbcfiredispatch&rpp=20 which until today had been returning all of this users tweets. The public timeline for user @SBCFireDispatch shows several tweets posted after the tweet which shows as the latest in the above JSON query. According to the deprecated API documentation all search queries should have remained untouched and the same string for a number of other users returns all public tweets. What would cause this users tweets to be in the public timeline, but not return as part of this JSON request?
Search is not meant to be exhaustive – there are some tweets that don’t end up in the index. The only canonical source for a specific user’s tweets is their user timeline.
so would a more reliable/appropriate http request be: https://api.twitter.com/1/statuses/user_timeline.json?include_entities=true&include_rts=true&screen_name=SBCFireDispatch&count=20?
Absolutely, that will consistently return you up to 20 of the user’s most recent tweets and retweets, regardless of whether they happened 10 days ago or 10 seconds ago.
For best results, you’d keep track of the most recent tweet ID you encountered and on subsequent requests attach it as a since_id parameter. But at its simplest, you can omit the since_id to just imply “most recent”