Когда кто-то отправляет SMS на ваш номер телефона Twilio, Twilio делает HTTP-запрос к вашему приложению. Детали входящего сообщения, такие как его текст и номер отправителя, передаются в параметрах этого запроса.
В этой статье мы рассмотрим, как принимать и обрабатывать этот запрос в JavaScript с использованием Node.js и Express. Затем мы узнаем, как отвечать на входящее SMS своим собственным сообщением.
Чтобы быстро запустить это приложение, мы воспользуемся HyperDev — сервисом, который позволяет писать и запускать Node-приложения прямо в браузере.
Откройте этот проект HyperDev, нажмите кнопку *Remix*, чтобы создать собственную копию проекта, а затем откройте файл server.js. Давайте разберём этот JavaScript-код по частям.
Сначала мы создаём приложение Express и подключаем body-parser для обработки входящего HTTP-запроса.
Затем мы:
— создаём маршрут для получения POST-запроса по адресу /message;
— выводим request.body в консоль. Здесь содержатся все детали сообщения от Twilio;
— отправляем HTTP-ответ обратно в Twilio. Этот ответ оформляется в виде TwiML и указывает Twilio отправить ответное сообщение.
В завершение мы:
— создаём домашнюю страницу. На самом деле это нужно только для того, чтобы я мог добавить вам красивую кнопку *Remix*. Вам это не обязательно;
— запускаем сервер. А вот это вам точно понадобится.
Нажмите кнопку *logs* над деревом файлов. Здесь мы будем видеть тело запроса и любые ошибки, возникающие в процессе разработки.
Нажмите кнопку *Show Live* над кнопкой *Logs*. Ваш проект теперь доступен по адресу http://your-space.hyperdev.space (на самом деле он уже был запущен всё это время). Скопируйте URL вашего приложения в буфер обмена.
Вам понадобится аккаунт Twilio. Вы можете зарегистрировать бесплатный пробный аккаунт здесь.
Купите номер. В конце процесса вам предложат *Настроить номер*. Прокрутите до раздела *Messaging* и найдите строку «Когда приходит сообщение». Здесь нужно указать URL вашего Node-приложения.
Вставьте URL вашего проекта HyperDev в поле и добавьте /message (например, https://your-space.hyperdev.space/message). Нажмите *Сохранить*.
Отправьте SMS на ваш новый номер Twilio и проверьте логи в HyperDev. Вы увидите что-то вроде этого:
Вау! Здесь много данных. Две самые полезные части:
— *тело* входящего сообщения. Оно находится в response.body.Body;
— номер телефона, с которого было отправлено сообщение. Он находится в response.body.From.
Давайте немного упростим этот вывод. Вернитесь в server.js и обновите маршрут /message так:
HyperDev автоматически сохранит файл и перезапустит сервер при внесении изменений. Отправьте сообщение на свой номер ещё раз и посмотрите на более читабельные логи.
Насколько это было просто? Получение SMS сводится к настройке базового веб-сервера и написанию нескольких строк JavaScript. Ответ на сообщение — это всего лишь отправка трёх строк XML. А с HyperDev написание и развёртывание Node-приложения становится таким же простым, как открытие браузера.
Если вы хотите глубже погрузиться в мир SMS от Twilio, рекомендую ознакомиться с:
— Node.js Helper Library;
— Twilio REST API;
— этим подробным руководством по отправке SMS и MMS-уведомлений в Node.
Если у вас есть вопросы, напишите мне на gb@twilio.com.