Create a simple yet effective Twitter BOt in nOdejs (javascript)
So let’s get started to make our very first twitter bot which will retweet, favorite, post, follow, unfollow people. In this post I am focused on only setting up your account and the retweet function, other functions will be in my next post. thanks enjoy
To get started you will need this development environment:
- Nodejs (npm) to download click here https://nodejs.org/en/ and install it
- any code editor of your choice (I prefer VScode bcoz it has many great extensions for new developers to help
3.Twitter Developer Account —
if you don’t already have one ..don’t worry, it’s very easy to create first you should have a working twitter account or you could set up a new one for this tutorial purposes. Now go to https://developer.twitter.com/en/apply-for-access
apply for a new account, now I know that the process is a little boring and time consuming but just bear it and complete it.
Once you are setup go to https://developer.twitter.com/en/apps and create a new app, now the name of the app can be anything just complete the steps, it will ask a URL also you can give any URL like your Facebook or Gmail, it doesn’t matter.
Once your app is created, now you have the access tokens which will be used in authenticating your account in the code. Go to keys and tokens and generate an access token and access token secret, these four alphanumeric string thingies are the reason we went through so much trouble of making a developer account and app.
Now make a new file called config.js and in it paste these tokens and keys like
module.exports = {
consumer_key:’ ’,
consumer_secret:’ ’,
access_token:’ ’,
access_token_secret:’ ’
}
Now a mistake which I made a lot was when I was copying and pasting the keys and tokens, I left a space between the quotes to remember no spaces at any end It will give an error during authentication.
So now we have one file named config.js, we just need a bot.js (where we will do our coding) and a package.json.Open the folder where this file is located and make bot.js file.
So what are we waiting for
Go to your terminal or command line and open the folder where this config.js file is stored and write
npm init -y
make sure your main file is the bot.js
this will create a package.json file in that folder. Let us now install twit, the package we will use in our coding, again in the command line
npm install — — save twit
Now if you check your package.json file it should have the twit dependency.
Now we can finally start our real coding, the moment you all have been waiting for. Open bot.js
first, we will require the config file and twit module like shown below
see we have imported twit module, and in the next line, we are making an instance of this twit module.
Now the next step is using the get and post method, these are the most basic yet most important methods in twit module, there is also stream method but we will limit ourselves to get and post only, at least in this article.
So I want to retweet the tweets containing a specific parameter like it should be #ironman or #marvel or @edsheeran etc. so first we will make a function retweet and in that function, we will search the tweets according to the parameter using the get method and finally retweet those posts using post method.
this is the function that we will do all the magic
first, there are the params object that specifies all the parameters for our search, here q is the required one and the others are optional, you can find all the parameters in the Twitter API documentation(link below)
then we will search using
T.get(‘search/tweets’,parameters,call back function)
search/tweets, searches the tweets using the parameters and the callback back function gets initiated so that we can see if we get an error or response or data. Data is the thing we want because it contains all the different types of data, so I store it in a variable called tweets, you can see this data by writing
console.log(tweets);
You can play around this data see, the actual text in the tweet and many other things
But I only need id_str which is required in the post method of twit once I have stored all the data in tweets I use a loop, there are man different id_str and I want to use every one of them
now we have our id_str which is stored in variable retweetId and use it in post method which
T.post(‘statuses/retweet/:id’, {id: retweetId},callback function)
here statuses/retweet/:id is the element retweets using the id of the tweet which is stored in the retweetId variable. The callback function gets initiated and if it gives an error I print it in console or if I get a response I print retweet successful in the console.
At last, I call this function in setInterval so it keeps on initiating over a fixed interval, remember if you call the function too quickly twitter may think you are abusing the API and can terminate your account.
Now in the command line call the program by
node bot.js
and see the magic happens (only if there are no errors)
Alright, guys, this is all in the next article I will continue from here and will cover following, unfollowing people, making a tweet, favoriting a tweet, retweeting with a comment and also deploying to a cloud server so that you don’t have to call it again and again in the command line so wait for it . Happy Coding
If you have any problem or doubt, question feel free to comment and I will get back at you as soon as possible .
A nice way of writing above code is
also if there is any error in the code let me know in the comments.
my GitHub source code for the above is
https://raw.githubusercontent.com/lelouchB/botsy/master/bot.js
Twitter Documentation
Top comments (1)
It's worth remembering that when you sign up for a developer account, you're subject to the developer agreement and policy, and also you must follow the Twitter Automation Rules.