Learn how to automate your workflow using Twilio's REST API and Twilio SMS. This example app is a vacation rental site, where the host can confirm a reservation via SMS.
-
Clone the repository and
cd
into it. -
Install the application's dependencies with Composer
$ composer install
-
The application uses PostgreSQL as the persistence layer. If you don't have it already, you should install it. The easiest way is by using Postgres.app.
-
Create a database.
$ createdb airtng
-
Copy the sample configuration file and edit it to match your configuration.
$ cp .env.example .env
You can find your TWILIO_ACCOUNT_SID
and TWILIO_AUTH_TOKEN
under
your
Twilio Account Settings.
You can buy Twilio phone numbers at Twilio numbers
TWILIO_NUMBER
should be set to the phone number you purchased above.
-
Generate an
APP_KEY
:$ php artisan key:generate
-
Run the migrations:
$ php artisan migrate
- Load the seed data:
$ php artisan db:seed
-
Expose the application to the wider Internet using ngrok
$ ngrok http 8000
Once you have started ngrok, update your Twilio number sms URL setting to use your ngrok hostname, so it will look something like this:
http://<your-ngrok-subdomain>.ngrok.io/reservation/incoming
-
Configure Twilio to call your webhooks You will also need to configure Twilio to send requests to your application when sms are received.
You will need to provision at least one Twilio number with sms capabilities so the application's users can make property reservations. You can buy a number right here. Once you have a number you need to configure your number to work with your application. Open the number management page and open a number's configuration by clicking on it.
Remember that the number where you change the sms webhooks must be the same one you set on
the TWILIO_NUMBER
environment variable.
For this application, you must set the voice webhook of your number to something like this:
http://<your-ngrok-subdomain>.ngrok.io/reservation/incoming
And in this case set the POST
method on the configuration for this webhook.
- Run the application using Artisan.
$ php artisan serve
It is artisan serve
default behaviour to use http://localhost:8000
when
the application is run. This means that the ip addresses where your app will be
reachable on you local machine will vary depending on the operating system.
The most common scenario, is that your app will be reachable through address
http://127.0.0.1:8000
, and this is important because ngrok creates the
tunnel using only that address. So, if http://127.0.0.1:8000
is not reachable
in your local machine when you run the app, you must tell artisan to use this
address, like this:
$ php artisan serve --host=127.0.0.1
This application uses this Twilio helper library:
-
Run at the top-level directory:
$ phpunit
If you don't have phpunit installed on your system, you can follow this instructions to install it.