Если вам интересно, как это работает, посмотрите это короткое видео:
Когда кто-то отправляет SMS на ваш номер Twilio, Twilio делает HTTP-запрос к вашему приложению. Детали этого SMS передаются через параметры запроса. Twilio ожидает HTTP-ответ от вашего веб-приложения в виде TwiML — это набор простых XML-тегов, которые сообщают Twilio, что делать дальше.
Сначала убедитесь, что ваше локальное окружение настроено и у вас есть директория для кода.
Откройте терминал и установите Flask — популярный микро-веб-фреймворк, который мы будем использовать для обработки запроса от Twilio:
Установите библиотеку Twilio для Python, чтобы генерировать ответ в формате TwiML:
Создайте файл `app.py` и импортируйте объекты Flask и request из библиотеки Flask. Также импортируйте библиотеку Twilio и инициализируйте новое приложение Flask:
Нам нужен маршрут для обработки POST-запроса на конечную точку сообщений. Используйте декоратор `@app.route`, чтобы указать приложению вызывать функцию `sms` всякий раз, когда на URL `/sms` нашего приложения отправляется POST-запрос:
Детали входящего SMS передаются в теле запроса в формате form-encoded. Два полезных параметра — это номер телефона, с которого было отправлено сообщение (`From`), и текст сообщения (`Body`):
Далее мы используем библиотеку Twilio для создания TwiML-ответа `
И не забудьте указать приложению запуститься:
В терминале запустите сервер, который будет слушать порт 5000:
Нашему приложению нужен общедоступный URL. Чтобы не развертывать его каждый раз при изменении, мы воспользуемся удобным инструментом ngrok, который создаст туннель к нашему локальному компьютеру.
Ngrok генерирует специальный переадресующий URL, который мы будем использовать, чтобы указать Twilio, где находится наше приложение. Скачайте ngrok и запустите его в терминале на порту 5000:
Теперь нужно привязать номер телефона к нашему приложению.
Откройте экран настройки номера телефона в консоли Twilio. Прокрутите вниз до поля «Когда приходит сообщение». Вы должны увидеть что-то вроде этого:
Введите URL для нашего маршрута сообщений, который был сгенерирован ngrok. Он должен выглядеть примерно так: `http://your-ngrok-url.ngrok.io/sms`.
Нажмите «Сохранить», затем отправьте SMS на ваш номер, чтобы получить ответ!
Подведем итог: когда SMS поступает на Twilio, Twilio отправляет запрос нашему приложению, а наше приложение отвечает TwiML, который указывает Twilio отправить ответное сообщение.
Если вы хотите узнать больше о том, как использовать Twilio и Python вместе, ознакомьтесь с:
Свяжитесь со мной, если у вас есть вопросы или вы просто хотите похвастаться тем, что создали:
— Email: sagnew@twilio.com
— Twitter: @Sagnewshreds
— Github: Sagnew
— Twitch (стримы живого кодинга): Sagnewshreds