This is a repo of WhatsApp bots built in Ruby using the Twilio API for WhatsApp.
There is one bot so far:
- Keyword bot: a Sinatra application that can return facts and pictures about dogs and cats based on the keywords you send to it
See the blog post Build a WhatsApp chatbot with Ruby, Sinatra and Twilio to see how to get started with building bots.
You will need the following to run the bots in this repo:
- Ruby and Bundler installed
- ngrok so we can expose our local webhook endpoints to the world in style
- A WhatsApp account
- A Twilio account (if you don't have one, sign up for a new Twilio account here and receive $10 credit when you upgrade)
- Head to the WhatsApp sandbox area of the Twilio console, or navigate from the console to Programmable SMS and then WhatsApp
- The page will have the WhatsApp sandbox number on it. Open your WhatsApp application and start a new message to that number
- The page also has the message you need to send, which is "join" plus two random words, like "join flagrant-pigeon". Send your message to the sandbox number
Clone the application to your machine with the following command:
git clone https://github.com/philnash/ruby-whatsapp-bots.git
cd ruby-whatsapp-bots
Install the dependencies with bundler:
bundle install
Copy the config example file:
cp config/env.yml.example config/env.yml
Get your Twilio auth token from your Twilio console and add it to config/env.yml
.
To use the location bot, sign up for a free Dark Sky API key and add that to config/env.yml
.
Change into the directory of the bot you want to run. Then run the application with:
bundle exec rackup
Run ngrok to tunnel through to localhost:9292:
ngrok http 9292
Take your ngrok URL and the path to your bot, https://YOUR_NGROK_SUBDOMAIN.ngrok.io/bot
and enter it in the WhatsApp sandbox admin in the input marked "When a message comes in" and save the configuration.
Now send your bot a message and wait for the response.
These bots are licensed under the MIT license.