Posting a large amount of tweets at the same time


#1

Hi, this is probably a very simple question for those in the know. But I am not a developer. I will use the advice here to instruct my developer.

I have a web app that posts scheduled tweets by my users. Just like what bufferapp or hootsuite does.

We run a cron that runs every minute, for each tweet, it makes an api call and gets a response. If there are 20 messages, it goes one by one until it is finished.

The problem is, we are growing, so now the cron time is sometimes taking longer than a minute so they are starting to overlap.

It is my understanding that twitter does not allow multiple simultanous connections to their API. So I am guessing that we will have to send all our tweets to twitter at the same time. So at the beginning of the minute, we will make one API call to twitter that sends information on 100 tweets, for example.

I just want to make sure this is allowed and the best solution.

Thanks in advance for any advice!


#2

It doesn’t really matter if you make 5 requests sequentially one after another or if you make 5 requests concurrently at the same time.

What really matters is that you know how to handle API rate limits and twitter limits and associated errors.


#3

Thanks Abraham for your response!

Its my understanding that there is no API rate limit for POSTs for sending tweets/status. The only limit is the twitter user limit of 2400 tweets per day.

Do you know where we can find some tutorial or guidance on how to send messages concurrently?


#4

Im just wanting to bump this because I still don’t really have a clear idea on how to achieve this.

Let me explain again.

Lets say I have 1000 users who have all scheduled a tweet to go out exactly at 1pm. So that is 1000 tweets that have to go out at 1pm.

Currently we use a system that posts one tweet, then records the result in our database, then posts the next tweet, records the result, and so on and so on.

It takes about a minute to send out 60 tweets, so 1000 tweets will take about 20 minutes, which is not acceptable.

So can I send 1000 tweets as a batch at one time to twitter? If not, what would be the best way to do this?

Thanks for any help.


#5

So in this case you have a single app, with 1000 users who have each logged in and therefore your app has 1000 access tokens.

Each user access token can post simultaneously, so you can post 1000 Tweets at once, assuming you have a system that is capable of multithreading. Your existing setup as described is doing things in sequence and not in parallel.

Note that if 1000 accounts all posted exactly the same content at the same time, and your app was identified as the tool which did this, our automated antispam system would be quite likely to throttle or suspend it. If this was simply a scheduling system for regular user-generated content then there should not be an issue.


#6

Thanks so much Andy! That points us in the right direction.

Just one more question, so we can do this with one api connection to twitter correct? I think I read somewhere that we are not allowed multiple simultaneous REST connections to twitter.

Oh, and we do restrict duplicate content. Our rule is no user can post the same content within 24 hours. Is that an appropriate setting?


#7

You can do it with one connection - each call would need to use the user token of the individual user doing the posting. There’s no limitation on the number of “REST connections”. There is a limitation on the number of Streaming API connections, but that API is not used for posting content.