Skip to content

Latest commit

 

History

History

stonks-bot

Build an SMS stocks bot with Twilio and TypeScript

This is an example project showing how to receive SMS messages, look up the stock price based on the body of the message and reply using the Twilio Programmable Messaging API, the Finnhub API and TypeScript.

Running this project

Things you will need

Get the code

Clone the repo and change into the stonks-bot directory:

git clone https://github.com/philnash/twilio-typescript-examples.git
cd twilio-typescript-examples/stonks-bot

Dependencies

Install the dependencies:

npm install

Environment Variables

Copy the .env.example file to .env:

cp .env.example .env

Fill in your Finnhub API key.

Compile the TypeScript to JavaScript

Compile the project:

npm run build

Note that this runs the TypeScript compiler, tsc, you could also run npx tsc to get the same output.

The TypeScript project will be compiled into the dist directory.

You can also continuously compile the project as it changes with

npm run watch

Run the project

Start the web server with:

npm start

Expose the local server with ngrok

To respond to an incoming webhook you will need a publicly available URL. ngrok is a tool that can tunnel through from a public URL to your machine. Once you've downloaded and installed ngrok you can run it like so:

ngrok http 3000

The ngrok terminal will show you a URL, like https://RANDOM_STRING.ngrok.io.

Connect your phone number to your app

Using the ngrok URL from the last part, you can set up your Twilio phone number with your application. Edit your phone number and in the Messaging section, next to when "A message comes in" enter your ngrok URL with the path /messages.

https://RANDOM_STRING.ngrok.io/messages

Save the phone number and you are ready.

Send your number a message with a stock symbol and you should receive a message in reply 🎉