Daniel Nill
Daniel Nill

Reputation: 5747

Dealing with request limit in twitter REST API

I have a Django app that needs to pull the follower_count information from several twitter accounts. But I am running into some problems with the request limit. The app is not a twitter app so it does not have an account and does not user OAuth so white listing is not a possibility (if I am understanding whitelisting correctly). So I have a few questions:

1) Is there any way to get around this limit for non-twitter applications

2) Is the 150 limit a hard 1 hour? meaning if you hit the limit at 8am do you just wait until 9am regardless of requests made in the mean time or is the hour count reset each time a request is made after the initial 150?

3) I am currently using the following code to get my data:

for page in pages:
    url = 'api.twitter.com/1/users/show/' + page.twitter_name + '.json'
    target = urllib2.urlopen(url)
    request = simplejson.loads(target.read())

    # parse the request

Is this counting as one request per page object or is there anything I can do in this code to lessen the number of requests I am making per page?

4) Do I understand whitelisting correctly in that it is for twitter apps or should I look into whitelisting the various twitter accounts I am pulling information from? ( I'm sure this information exists but all the links I could find regarding whitelisting were broken)

EDIT: I have now discovered that twitter no longer offers new whitelisting so disregard those elements of the question.

Upvotes: 1

Views: 590

Answers (2)

BrickSquad
BrickSquad

Reputation: 23

Here's a good method to use to find the amount of 'remaining-hits' you have left: http://api.twitter.com/1/account/rate_limit_status.json

It returns something like this, letting you know when you're allowed to make another request:

{
    "remaining_hits": 150,
    "reset_time_in_seconds": 1277234708,
    "hourly_limit": 150,
    "reset_time": "Tue Jun 22 19:25:08 +0000 2010"
}


POW

Upvotes: 1

Chris Pratt
Chris Pratt

Reputation: 239460

I'd say that for something like follower count, you don't need it to be right-to-the-second up-to-date. Since each load already generates a bunch of requests (getting multiple users data), you're better off sacrificing a little accuracy for less request generation. Store the counts you get in the page objects, perhaps along with a timestamp of when the last request was made, and then use the number from the model and only re-evaluate if it's been more than hour since the last check. The follower count is probably not changing that drastically anyways.

UPDATE: Any time you're working with a 3rd-party API, you should always be using mocks in development, especially with a rate limit involved. Just get the response once, save it, and then point your AJAX request to the saved copied during development.

Upvotes: 1

Related Questions