Как принимать и отвечать на SMS-сообщения с помощью Node.js, Express и Twilio

Автор: | 09.08.2026

Вы создаете приложение на Express и хотите научиться отвечать на SMS-сообщения? Давайте разберем, как добавить Twilio SMS в приложение Express «Hello World».

Прежде чем продолжить, убедитесь, что у вас установлены Node.js и npm. У меня установлены версии `8.6.0` и `5.3.0` соответственно.

Мы будем использовать:

— Express в качестве веб-фреймворка;

— Библиотеку Twilio для Node.js, чтобы взаимодействовать с API Twilio для отправки и получения SMS.

Перейдите в директорию, где будет располагаться ваш код, и выполните следующую команду в терминале, чтобы создать npm-пакет для проекта:

Флаг `—yes` автоматически заполняет все запросы, которые иначе пришлось бы заполнять вручную. Теперь, когда у нас есть файл `package.json`, установим необходимые библиотеки:

Флаг `—save` сохраняет версию установленной библиотеки в файле `package.json`.

Начнем с кода, который используется в документации Express для примера «Hello World». Создайте и откройте новый файл `index.js` в текущей директории и добавьте в него следующий код:

В этом коде мы создаем приложение с помощью Express и добавляем маршрут `/`, который обрабатывает `GET`-запросы. Когда на маршрут `/` поступает `GET`-запрос, вызывается функция, отправляющая клиенту строку «Hello, World!». Затем приложение начинает прослушивать порт 3000 для входящих запросов.

Сохраните файл и запустите проект командой `node index` в той же директории, где находятся `package.json` и `index.js`, затем откройте http://localhost:3000, чтобы увидеть на экране «Hello, World!».

Прежде чем вы сможете отвечать на сообщения, вам понадобится телефонный номер Twilio. Вы можете приобрести номер здесь (это бесплатно, если вы используете номер для тестирования кода во время разработки).

Ваше приложение на Express должно быть доступно из Интернета, чтобы Twilio мог отправлять ему запросы. Для этого мы будем использовать ngrok, который нужно установить, если он у вас еще не установлен. В терминале выполните следующую команду:

Если вы только что установили ngrok и предыдущая команда не сработала, возможно, вам нужно выполнить ее как `./ngrok http 3000` из директории, где находится исполняемый файл ngrok.

Это предоставит нам общедоступный URL для приложения. Настройте свой телефонный номер, как показано на этом изображении, добавив URL ngrok с `/sms` в раздел «Messaging»:

Теперь вы готовы принимать SMS-сообщения на свой новый номер Twilio.

Теперь, когда у вас есть номер Twilio, вы можете разрешить пользователям отправлять на него текстовые сообщения и получать ответы.

Нам понадобится всего один маршрут в этом приложении: `/sms` для обработки входящих сообщений. Давайте добавим еще один маршрут. Замените весь код в `index.js` следующим:

Запустите код снова:

Теперь отправьте сообщение на ваш номер Twilio, и вы должны получить ответ!

Когда это приложение запущено на порту 3000 и доступно через публичный URL ngrok, Twilio может взаимодействовать с ним. При получении SMS-сообщения:

— Twilio отправит `POST`-запрос на `/sms`.

— Будет вызвана функция обратного вызова, связанная с маршрутом `/sms`.

— Эта функция ответит на запрос Twilio с помощью TwiML, указывая Twilio отправить ответное сообщение (содержащее милую картинку с совой).

Если вы хотите более подробно изучить работу с Express и Twilio SMS, ознакомьтесь с учебными материалами по SMS и MMS-уведомлениям или напоминаниям о встречах с Express.

Не стесняйтесь обращаться, если у вас есть вопросы, комментарии или вы просто хотите похвастаться тем, что создали.

— Email: sagnew@twilio.com

— Twitter: @Sagnewshreds

— Github: Sagnew

— Twitch (стримы кода в прямом эфире): Sagnewshreds