How To Make WhatsApp Bot Easily - AnonyAsil

How To Make WhatsApp Bot
This is a tutorial to help you make a something like this, your own chatbots on WhatsApp - these bots are immediately available to over 2 billion users, and there are so many things possible πŸŽ“

I can't wait to see what you make! Now, let's get started πŸƒ‍♂️

πŸ”‘ Accounts and Keys
First, Sign up for Twilio - it's free and you won't need a credit card πŸ’³



Once you're done verifying your phone number, select Procuts > Programmable SMS and then continue to name your project.



Feel free to skip steps for adding teammates - you won't need that for now.

You must now take note of some authentication keys you'll need for building the WhatsApp bot πŸ‘‡



The final step - setup your WhatsApp Sandbox here - choose any number, and join your sandbox following instructions on the page.



Aaaaaand you're done with credential setup! Don't worry, that was the toughest part of this tutorial πŸ˜›

πŸš€ Getting Started
So that we don't spend too much time on setup, I've created an environment (with repl.it!) you can use within your browser. Head over here, and wait for a couple of seconds to fork it.

Next, create a .env file - and put in your Account SID and Auth Token, on lines 1 and 2

SID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # Account SID
KEY=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX # Auth Token
You can see, this environment already has dependencies installed, and an express server set up. We still need to give Twilio a URL to send incoming messages to, though πŸ”—

Let's go back to the WhatsApp Sandbox, and put in a webhook URL for incoming messages.



This URL must be what you see on the preview panel of your repl.it project + /incoming



We can now finally read messages that are sent to the bot. Navigate to index.js and then add a simple console.log() in your webhook handler πŸ‘‡

app.post('/incoming', (req, res) => {
  console.log(req.body)
});
When you send a message to your bot, you should be able to see something like this in your repl console πŸ‘¨‍πŸ’»



Building an echo bot would look something like this, using twiml to write a message πŸ‘‡

app.post('/incoming', (req, res) => {
    const twiml = new MessagingResponse();
    twiml.message(req.body.Body);
    res.writeHead(200, {'Content-Type': 'text/xml'});
  res.end(twiml.toString());
});
But, since we're actually trying to build a useful bot - let's use informative APIs!

🌐 Fetching Information
DuckDuckGo has an amazing, free instant answer API. It takes in a query and returns back a summary from WikiPedia and more.

A few examples πŸ‘‰ WikiPedia, Macbook Air, Twilio

I spent some time creating a decent parser which usually returns information from this API. Try pasting this code in your repl.it project, and your console should have stuff about Trump in it πŸ˜›

var base = 'https://api.duckduckgo.com/?skip_disambig=1&format=json&pretty=1&q=';
var query = 'Neymar Jr';

request(base + query, function (error, response, body) {
    body = JSON.parse(body) 
    if(body["Abstract"] == ""){
        body["Abstract"]= body["RelatedTopics"][0]["Text"]
      }
    var msg = body["Heading"]+"\n\n"+body["Abstract"];
  console.log(msg)
  });
Pretty straight forward, right? πŸ˜„

πŸ› ️ Putting it all together
To make our actual bot, all we need to do is get the query from our request - which we can get as req.body.Body - and use twmil to send across the data we collected in msg

app.post('/incoming', (req, res) => {
    const twiml = new MessagingResponse();
    var base = 'https://api.duckduckgo.com/?skip_disambig=1&format=json&pretty=1&q=';
    var query = req.body.Body;

    request(base + query, function (error, response, body) {
        body = JSON.parse(body)

        if(body["Abstract"] == ""){
            body["Abstract"]= body["RelatedTopics"][0]["Text"]
          }

        var msg = twiml.message(body["Heading"]+"\n\n"+body["Abstract"]);
            res.writeHead(200, {'Content-Type': 'text/xml'});
          res.end(twiml.toString());
      });

});
You now have a fully functionaing WhatsApp bot! Send anything you want to know about your bot πŸ€– and you should see it respond super fast πŸ’¬ ⚡

Adding welcome messages and a little formatting is quite simple, look at the final repl to see how I did it πŸ‘¨‍πŸ’»

πŸ”— Sharing the bot
For others to use this bot, they'll need to join your sandbox first - and send a message just like you did earlier πŸ‘‰ join <two-words>

You can create links with this text too - For example this link lets you join my bot πŸ‘‡

https://wa.me/91xxxxxxxxxx?text=join ultramarine-tapir
91xxxxxxxxxx is my bot's number, while ultramarine-tapir is the sandbox phrase.

⚡ What's next?
Now that you know how to build a bot on WhatsApp, try sending notifications to yourself, and building more useful tools! Twilio has loads of other mediums to message through too


Keep Visiting Our Blog For More Cool Stuffs & Tricks 😎

Enjoy! πŸ’―

@AnonyAsil

Comments

Popular Posts