*является основателем* Red27 Consulting в Денвере, CO. Недавно Дасти работал над приложением под названием SMSBet.info, которое использует Node.js с Twilio. Дасти написал эту статью, чтобы помочь вам начать создавать свои собственные приложения Twilio на основе Node.
Недавно, работая над функциональной моделью для SMSBet.info, мы решили использовать Node.js и Twilio. Объединение этих двух технологий делает создание приложений SMS и телефонии очень простым. Node.js — это супер быстрый, событийно-ориентированный, асинхронный серверный движок JavaScript. Хотя проект еще относительно молод, он имеет очень преданное и растущее сообщество.
Node.js сам по себе обеспечивает простое событийное IO. Первый шаг к созданию приложения Twilio был найти веб-фреймворк, чтобы помочь с основными задачами HTTP и рендеринга представлений. Express — это популярный фреймворк, который хорошо подойдет для наших нужд. Использование Express достаточно, чтобы получить SMS-сообщение, получить его содержимое и ответить. Это то, что я собираюсь продемонстрировать здесь.
Вам также понадобится учетная запись Twilio для этих примеров. Если вы только что зарегистрировались, вы можете использовать номер песочницы на вашем счете, или если вы обновили местный номер, он также будет работать. Сначала мы создадим приложение и развернем его, а затем позже настроим наш URL SMS, который вызывается, когда сообщение отправляется на наш номер песочницы.
Наконец, нам нужно место, чтобы разместить это приложение, я собираюсь использовать Nodester.
Теперь давайте создадим наш проект Express и начнем.
twiliosample — это имя проекта Express, который мы создаем. Команда Express создаст и инициализирует приложение в каталоге с тем же именем. Если вы предпочитаете, вы можете использовать любое имя вместо twiliosample.
Внутри нашей папки проекта найдите и откройте app.js в редакторе вашего выбора и добавьте следующее в верхнюю часть файла. Это создает объект sys, который позволит нам регистрировать входящие SMS-данные.
Далее мы создадим функцию для обработки наших входящих запросов SMS. Добавьте следующий метод под маршрутом по умолчанию.
Когда POST-запрос приходит в /incoming, эта функция будет вызвана для обработки запроса. Мы извлекаем значения From и Body из данных POST и регистрируем их. Далее мы возвращаем TwiML, который отправит текстовое сообщение обратно отправителю с сообщением благодарности.
Чтобы протестировать это, вам понадобится публичный URL для доступа Twilio. Чтобы протестировать локально, вы можете симулировать запрос, используя следующий синтаксис cURL. Запустите сервер Node.js, используя ‘node app.js’ из корня проекта. Затем из другого командного окна выпустите эту команду cURL.
Если все работает, вы увидите возвращенный TwiML и ваше сообщение, зарегистрированное в окне команды Node.js.
Если у вас есть учетная запись Nodester, мы можем опубликовать наше приложение, настроить Twilio, чтобы вызвать его, и протестировать! Nodester использует Git в качестве системы развертывания, поэтому нам нужно настроить наш проект как репозиторий Git.
Nodester предоставляет набор инструментов CLI, чтобы сделать работу с приложениями Nodester проще. Вы можете установить инструменты, используя менеджер пакетов Node:
Как только вы установите инструменты, следуйте этим инструкциям, чтобы настроить вашу учетную запись пользователя. Далее мы настроим приложение. Поскольку имена приложений должны быть глобально уникальными, вам нужно будет использовать имя, отличное от twiliosample. Мы будем использовать команду appnpm, чтобы удаленно установить пакеты, которые мы используем для этого проекта.
Последняя команда выведет URL репозитория Git. Используйте этот URL в следующей команде, чтобы подключить ваш локальный репозиторий Git к удаленному репозиторию Nodester.
Обновите порт, на котором ваше приложение слушает, по умолчанию 3000, в app.js до порта, указанного в команде info. Зафиксируйте изменения в git и отправьте в Nodester и запустите ваше приложение.
Перейдите к вашему приложению и проверьте, работает ли все http://[nodesterappname].nodester.com.
Последний шаг — подключить ваш публичный URL-адрес Nodester к вашему номеру телефона. Войдите в Twilio и обновите URL-адрес SMS для вашего номера телефона (или номера песочницы) до http://[nodesterapp].nodester.com/incoming. Отправьте текст на ваш номер и подождите ответа. Если вы используете номер песочницы, помните, что нужно добавить префикс PIN к вашему тексту.
Вы можете проверить журналы на сервере, чтобы убедиться, что ваше сообщение было зарегистрировано с помощью следующей команды: