Hello Twitter Administrators

I’ve been a Twitter user since 2008 and only in the last year (mostly during COVID lockdown) I have started playing around with the API and wanting to start little Twitter projects.

During lockdown in the UK I started researching automation and thought I would give it a try. I watched a video or two on how to set up a Twitter bot.

So I created a brand new Twitter account, filled in the Developer application form and the Developer Account was authorised there and then without having to answer any further questions and with the minimum of fuss.

(For what it’s worth, if you’re interested, the bot was created, it was a simple bot that replied “Don’t call me Shirley” to anyone who used the word “Surely” in their tweets. It was a comedy/parody account from the movie “Airplane!” and my friends and I had some fun and that was that, the joke wore thin fast and we took it down. It wasn’t even an original idea, there’s still accounts up on Twitter now doing exactly the same joke…)

Now that I knew how simple it was to create a bot to react to certain situations on Twitter, I started thinking more practically about how to use the technology available. Thinking, as in not using it for comedy or spam purposes and actually use it for something tangible, like creating a business to help people.

So my next bot… I created a local news alert system for the area of the country where I live. It reacts to certain hashtags and retweets onto the account timeline any tweets which contain a hashtag I have programmed my bot to recognise. It’s working perfectly, it tweets around 5-10 times a day, sometimes more, sometimes less, and it is ticking along very nicely, I manually engage with followers if necessary and it’s attracting its own engagement now. I’ve started being tagged on other peoples posts as it’s being recognised my account will retweet their information for them. It’s going very well. People are benefitting from the account. It has real-world value and I’m feeling a lot of positivity from running the account. So it’s a good thing for me.

The plan is to export this timeline to a website and using publish. twitter. com I will be able to embed the news account timeline via HTML into this website, which will help people who visit the website (who do not have a Twitter account and do not visit Twitter) access the Tweets and get the same benefit of the news being distributed.

If I’m not mistaken this practice is allowed, yes?

So the key fact is I have an existing Twitter account which is programmed to retweet a hashtag and it’s very much allowed to run every day with no interference from Twitter.

Over the last couple of days, I have set up this new account (which I am logged into and typing from now…) which I have set up for a neighbouring part of the country. The idea is to do exactly the same for the neighbouring county as I have been doing for my local county. After applying for developer access, explaining that I have an existing account that is working perfectly, I received this e-mail.

Off-topic slightly but still applicable to this, I should also point out that earlier in the year, I tried to create another bot for another programming project I had in mind that I have now abandoned. I received this same first email above at the time and I replied to it. Only to then receive this second e-mail (unable to attach screenshot so copied and pasted)…

Thanks for applying for access!

It looks like your proposed use case may be in violation of one or more sections of the Developer Agreement and Policy, Automation Rules, and/or the Twitter Rules.

As a next step please review these policies as they relate to your use case. Then, respond to this email with an updated use case that is in full compliance with Twitter policy.

Thank you for your interest in building on Twitter.

In my experience, after replying to this, Twitter send you another e-mail to say they have declined your application for API access and there is no appeal process.

My problem is that I am at this very point with my new account, knowing that whatever I reply to this latest e-mail, the game is probably up.

I have explained in minute detail my intentions for the new Twitter bot when I replied to the first e-mail and Twitter want more from me that I haven’t got. I don’t know what else I can say about my intentions for the account. I now have nothing else to add so when I reply to the second email, I am going to be notified that I have been unsuccessful with the application.

I am looking for some help from the community. I don’t understand the rules, clearly. I was hoping that a moderator or administrator would be good enough to DM me maybe to see what my options were?

During my reply to the first e-mail to show the functionality I was looking for, I did a quick search for a retweet bot, a random one, just so I can demonstrate that I am asking for the same permissions and considerations. The one I found retweets the same hashtag over and over again, it joined Twitter in August 2016 and has tweeted 94,000 times. My bot will do the same but on a much smaller scale. But even after pointing this out I received the second email.

As I say, I just need to know what the rules are. I have read the Twitter rules and policies and they are too vast without being a lawyer to understand what is and isn’t allowed, but the privilege I am asking for is being allowed on other accounts (…for the last time…) including one I already manage separately.

I would just like an explanation. As I have seen this identical e-mail before on a previously declined Developer application, I am not even sure if the application process is being monitored by a human or by an algorithm bot (ironically…)

I have a feeling I will get a real answer from a person who’s gone through this process themselves before in this community, even if it’s an answer I am not going to like.

Please DM me if possible. Thanks in advance. Apologies for the essay. Enjoy your day

1 Like

Over the last couple of days, I have set up this new account

You only need (and are allowed) 1 developer account, and can create something like 10 apps, but all your bots can live happily under 1 app. See here:

Retweet bots and auto reply bots are generally not good - i wouldn’t make any of those. A few of them remain in existence, but i wouldn’t try to make any new ones myself.

The terms & conditions are pretty long and verbose, but the automation rules are much easier to read i think: Twitter's automation development rules | Twitter Help

Hope that helps!

2 Likes

Thank you very much for your reply Igor, very helpful and it’s given me things to think about.

I was unaware that you aren’t allowed more than one Developer account. I just assumed that “one account = one developer account”, so I would need to create a developer account for every Twitter account I have, which as I’ve discussed is two.

But unless I’m mistaken, the point you’re illustrating is that potentially I only need one twitter account, which has a developer account attached to it, which will allow me ten apps, and the apps can have many bots to deploy on many accounts.

How many bots does one app hold? Two? More than two?

Apologies if that question is in any way unclear.

I’m just trying to get my head around using my existing development account I’ve had for months on this account I’m logged into now which I’ve had for two days. I had no idea this was possible…

Maybe I can get the result I want out of this after all using my original Development account rather than continuing with the application on my brand new account.

1 Like

you can authenticate something like 100,000 twitter accounts to 1 app if i remember correctly - the only other limit to look for is the App limit of 300 tweets per 3 hours that’s shared between all authenticated accounts.

And yes, you’re right - the correct way to get the result you want is using your original developer account to create an app for posting tweets, and then authenticating your bots to it (authentication only needs to happen once, save the keys and keep them safe like passwords and they don’t expire)

2 Likes

Right… As you can tell this is news to me… I no longer have to e-mail Twitter back about the developer account application as I already have an existing one… So far , so good.

Igor, do you know where I can find detailed guidance on how to deploy another separate Twitter account using an app/bot on my original developer account? I should be able to take it from there then…

1 Like

Sure - once you have your developer dashboard and an app created - copy and keep your Consumer Key & consumer Secret: these two strings belong to the App.

Set up twurl GitHub - twitter/twurl: OAuth-enabled curl for the Twitter API (it makes things easier)

Then for each bot (a separate twitter account) - log in to a web browser, and follow these instructions:

twurl authorize --consumer-key .... --consumer-secret .... open the link in browser when logged in as one of your bots, then enter the pin, and check for that (hidden by default) .twurlrc file which will have the keys saved in yaml.

These steps avoid having to implement the entire Login With Twitter flow yourself, which will also result in you obtaining an access token and access token secret: Log in with Twitter | Docs | Twitter Developer Platform

Then once you have your consumer key & secret, and the access toek n & secret - these 4 parts can be used to sign requests and post on behalf of your bots (the access token belongs to a user, and the first numbers part before the - is the user id)

2 Likes

Ahh right… Thank you for the reply Igor, but now I’m very stuck.

I have only been dabbling in automation in the last three months and I created my bots using Amit Agarwal’s Twitter Bots application because there was no programming involved. It seemed simple enough, and it is… providing you have a developer account which is proving to be quite impossible to apply for.

During lockdown, I did sit through a very detailed Python YouTube training course that I started off with very well with the basic beginner stuff.

By about two hours into it I was cross-eyed and I started having problems where files wouldn’t open and I wasn’t getting the same results as what the tutorial was showing me and I was getting all kinds of error messages that I couldn’t fix and obviously, you can’t ask a YouTube tutorial the answer to why your results don’t look like theirs so you inevitably give up.

In short, I can’t program Python I don’t know what Rubygems is or how to use it and I wouldn’t know where to begin on Github or how to instail Twurl. It’s all literally a foreign language to me.

This takes me back to the start though, and something I don’t understand regardless of being unable to understand Python and Rubygems. The rule that I am only allowed one Twitter Development Account.

I have used two separate e-mail addresses and two separate Twitter accounts for the two accounts. So why shouldn’t a developer account be allowed for the two separate accounts? For all Twitter knows, two people at two separate ends of the internet are opening developer accounts, how do they know I’m applying for a second one? I’m really not sure this bit makes any sense to me as to why the second developer account is being declined. They’re unrelated accounts, they’ll just do the same thing.

There doesn’t seem to be any consistency as to why one is allowed and the other is not. And getting a second Twitter account to update via automation, using a bot from the first developer account I have is proving to be impossible unless I teach myself a programming language.

Do you know if there is an easier way for a beginner to do it than using Twurl and Rubygems?

Thanks again in advance.

1 Like

Stackoverflow is a good place to ask for any python / ruby questions with setting up or errors.

I’m still not entirely clear - if you have a developer account or not - it doesn’t matter with what account or email, as long as you can somehow log in and get to https://developer.twitter.com/en/portal/dashboard you’re good to go.

Amit Agarwal’s Twitter Bots application

https://digitalinspiration.com/bots This one right? There’s some naming confusion here that’s happened before… these aren’t exactly “bots”. A “bot” normally refers to a separate twitter account that is controlled in part or entirely via the API. “Agarwal’s Twitter Bots” are more like functions you call in the API at regular intervals. You can make that script do things on using a separate twitter account too - provided you give the right access token.

There are 4 things you need to sign an API request with: API key (also called Consumer Key), API Secret (also called consumer secret), Access token, and Access token Secret.

The Consumer key & Consumer Secret belong to an app - owned by a developer account, this is the part on apps.twitter.com dashboard.

The second half, the access token & access token secret belong to an individual twitter account, and can either be generated on the dashboard for convenience for the owner of the app only - or for any arbitrary twitter account using Login with twitter Log in with Twitter | Docs | Twitter Developer Platform. to skip implementing that entire login with twitter thing, you can use a command line tool like twurl to generate the access token and access token secret like in that post i linked earlier - this is a shortcut because you only need to do it once. Unfortunately it does require setting up a ruby environment.

Maybe if the problem is with setting up environments, you can do this Ruby Online Compiler & Interpreter - Replit

this will give you a temporary ruby environment where you can run these in the black terminal part:

gem install --user twurl

it will give you some warning about not being in PATH like:

WARNING: You don't have /home/runner/.gem/ruby/2.5.0/bin in your PATH

then run

../.gem/ruby/2.5.0/bin/twurl authorize --consumer-key keybla1 --consumer-secret secretbla2

including the dots at the start, replacing keybla1 and secretbla2 with the consumer key and secret you get from the app dashboard under “Keys and tokens”.

When you run that, it’ll tell you to go to a url on twitter.com to authorize the app, copy paste the PIN it gives you and after you enter that pin and press enter, it should say “Authorization successful”.

Now to get your access tokens and secret, run:

cat ../.twurlrc

This will show you the keys you need, so you can use them in any other tool that asks for access tokens, it’ll look like this:

profiles:
  IgorBrigadir:
    aaaaaaaaabbb:
      username: IgorBrigadir
      consumer_key: aaaaaaaaabbb
      consumer_secret: ccccccccccccccccccccccccccccccccccccc
      token: 495430242-ddddddddddddddddddddddddddddd
      secret: fffffffffffffffffffffffffffffffffffffffffffff
configuration:
  default_profile:
  - IgorBrigadir
  - aaaaaaaaabbb

It’s IgorBrigadir in there because that’s the account i was logged in as in my browser when i visited the page that twurl authorize generated, 495430242 is my Twitter user_id from the API. In your case, you may want to log in as your separate bot account. When copy pasting those, don’t include any spaces before or after the keys, so the token line:

token: 495430242-ddddddddddddddddddddddddddddd

495430242-ddddddddddddddddddddddddddddd is the token value, without any spaces.

Hope that helps!

2 Likes

This does help Igor. Thanks very much once again for your patient replies.

When I click on the link https:// repl . it/languages/ ruby (sorry, I’m not allowed to post links for some reason) it takes me to a console. If I start copying and pasting the Secret values in there, is that just local on my computer or is it a collaboration tool that the whole internet can see?

What I’m asking… is that a private console?

1 Like

It’s not public no, nobody else can see your commands (ok, technically maybe people running that site can, if they really wanted to) - it’s ephemeral, meaning it only lives for the duration of your session, and will get destroyed when you close the tab or leave it for a few minutes. You can always delete the configs when you’re done if you want with rm ../.twurlrc

2 Likes

That is great Igor. Thank you for that confirmation.

I do have another question if you don’t mind answering for me. It was in regard to your mention earlier about 300 tweets within 3 hours. I don’t fully understand that…

Is the tweet allowance 300 per App, or 300 per bot, or 300 per developer account?

For example, on my developer account, I only have one app (App 1) with one bot on it and in three hours that posts 10 times.

If I added another bot to App 1 and it tweets 10 times in three hours, that’s obviously 20 Tweets in three hours.

If I then add another new separate App to my Developer Account (…so… App2…) which contains one bot and that posts 10 times in three hours, does this mean that the tally is now 30 tweets in three hours, or does Twitter count it by App so it will still be like this?

App 1 – 20 Tweets so 280 Tweets allowance remaining for 3 hours

App 2 – 10 Tweets so 290 Tweets allowance remaining for 3 hours

Or is it?

All Apps – 30 Tweets – so 270 Tweet allowance remaining for 3 hours

Apologies if I’m in any way unclear about what I’m trying to ask.

Thank you for your time and patience Igor.

1 Like

Your rate limits are per app.

You really should only have a single developer account / Twitter account, and you could have multiple (by default, up to 10) apps registered to that account. Each of those APPS has the rate limit. You can authenticate multiple users to those apps, but by default, the APP will be capped. If your app is posting a lot - for example for many many users - you can apply to have the APP level cap removed.

2 Likes

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.