Building a Twitter bot is part of the holy pilgrimage to being a hobbyist developer. Let's face it: building bots is fun.
Let's take our first steps into how we can make our first Tweet with NodeJS. We will go through a simple four-step process on how to get up and running with your first bot!
As of writing, it is a requirement to apply for access for a developer Twitter account. It is nice and straight-forward and requires a couple of minutes to fill out.
This step is only required if you have no yet done this.
Once you have access to the Developer Dashboard, you can create your first app and obtain your Twitter access tokens.
From the dashboard, you will need to head to
Projects & Apps > Your Project > Your App and select
Keys and tokens on the tabs at the top. This will give you access to copy and save your
API Key & Secret. These will only be available for a day or so. Make sure you store them somewhere secure! I always opt for a password manager.
You will also need to generate the
Access Token & Secret. This an be done under
Authentication Tokens. Do the same by copying these and keeping them safe. We will need all four of the keys we have stored.
Obfuscated Auth token keys
Once you have done all that, keep the keys handy and we will build out the bot.
In that same dashboard, head to
Projects & Apps > Your Project > Your App and make sure you change your
App permissions to be
Read and Write.
This is important to allow us to Tweet with the credentials from above.
Read + Write Permissions
We will keep things short and simple for now to get our first Tweet out! We are going to use the Twit package to be our medium through which we post and Dotenv to load our environment variables at runtime from our local (so we can safely Git ignore them).
From the root of your new project:
.gitignore, let's make sure our secrets are not being stored on our remote repository:
With our access tokens we saved from before, we will need to add them to
Finally, let's add our code to
What we are doing in
index.js is fairly straight forward, but let's break it down:
.envfile to access during runtime
Twitand initialise it with our environment variables
postfunction that simply takes text, checks it is less than the defined limit and then uses the client to post
mainasynchronous function that will attempt to post the text
"First post from the blog helper bot!"
It is worth noting that
post returns a promise, hence why we make
async function and use
await when calling to post
That is it! Let's now run
node index.js. If successful, you should get the following back:
If you are unsuccessful, there will be an error that is caught and logged out.
If we now jump onto Twitter, we can see our successes!
First Twitter bot post
Congratulations! You can now post remotely and avoid all the negative vibes that can comes across from time to time when perusing the Twitterverse!
Image credit: freestocks