Как Flxt.it использует Twilio, чтобы вы никогда не пропустили хороший фильм

Автор: | 18.07.2026

Бывало ли так, что вы ужинали, и кто-то упоминал фильм, который вы обязательно должны посмотреть (например, «Гаттака»), а потом вы шли домой и тут же забывали название? Flxt.it хочет гарантировать, что хороший фильм никогда не останется незамеченным. Просто отправьте название фильма по SMS на номер Flxt.it, и он будет добавлен в вашу очередь Netflix. Это гостевой пост от создателя Flxt.it, Джона Клейтона, о том, как он использовал Twilio для разработки Flxt.it.

Другим утром на моем рабочем столе появилось очередное уведомление в Твиттере… моя запись победила!

И теперь… я с гордостью представляю Flxt.it — простой инструмент для управления вашей очередью Netflix.

Сколько раз вы были вдали от компьютера и думали о фильме, который не хотите пропустить? Вот тут-то и приходит на помощь Flxt.it — если вы умеете отправлять SMS-сообщения, вы можете добавлять фильмы в свою очередь Netflix. Существуют приложения, которые делают это, но отправка SMS быстрее, и вам не нужен смартфон.

Когда вы регистрируетесь на Flxt.it, ваш аккаунт Netflix связывается с вашим мобильным телефоном, и вам предоставляется номер телефона, на который можно отправлять названия фильмов. Этот номер предоставляется Twilio, и именно здесь начинается магия.

Когда Twilio получает SMS-сообщение, он передает информацию веб-приложению, которое работает на ASP.NET MVC 3. Во Flxt.it есть единственный конечный пункт, который получает сообщение, ищет информацию о вашем аккаунте Netflix, обрабатывает ее и отвечает SMS-сообщением, чтобы вы знали, что фильм добавлен в вашу очередь.

Привязка модели MVC превращает все параметры, которые отправляет Twilio, в удобный для использования класс. Чтобы ответить на входящее сообщение, есть два варианта — TwiML или REST. Первый вариант — единственный, если вы хотите выполнить более одного действия, например, отправить несколько SMS-сообщений и перенаправить на другой TwiML-документ. Второй вариант — более простой, когда вам нужно только отправить ответ — установите тип содержимого ответа на text/plain, и Twilio отправит тело ответа отправителю в виде SMS-сообщения!

Именно этот подход и использовался во Flxt.it. Пользовательский SmsResult устанавливает тип содержимого и гарантирует, что сообщение не превысит 160 символов. Если вы не хотите отправлять ответное сообщение, просто отправьте пустой ответ.

Также важно правильно обрабатывать любые ошибки, чтобы Twilio всегда получал действительный ответ от вашего приложения. MVC делает это невероятно просто, без необходимости оборачивать все действие в try/catch. Либо перегрузив метод OnException, либо предоставив пользовательский фильтр для действия или контроллера, вы можете вернуть SmsResult, независимо от того, что произойдет во время выполнения действия.

Все мы заботимся о конфиденциальности, поэтому обращаться с номерами телефонов следует с предельной осторожностью. Даже в таком простом приложении, как это, я хочу предпринять все возможные меры для обеспечения безопасности номеров телефонов пользователей.

Первая и самая эффективная мера предосторожности заключается в том, что Flxt.it не хранит полные номера телефонов. Поскольку Flxt.it всегда будет отвечать на входящие сообщения, он будет хранить хэш номера телефона и последние четыре цифры, и все равно сможет связать ваш аккаунт Netflix с вашим входящим запросом на фильм.

Второй способ защиты конечной точки Twilio — убедиться, что Flxt.it будет отвечать только на запросы от Twilio и ни от кого другого. В каждом запросе Twilio подписывает запрос, используя ваш секретный токен аутентификации, и отправляет его в HTTP-заголовке. Чтобы проверить его, вы выполняете ту же операцию, и если запрос действителен, вы получите точно такое же значение.

Ниже приведен пример того, как вы можете создать фильтр действий в MVC для простой валидации действия или всех действий в контроллере. Он основан на отличной презентации Джона Шиэна на mvcConf на прошлой неделе.

Стоит отметить, что при работе в среде с балансировкой нагрузки, такой как AppHarbor, веб-сервер, который обслуживает ваш запрос, вероятно, не является точным адресом, с которого Twilio вызывает вас извне. Поскольку это часть подписи, нам нужно использовать значение заголовка хоста, а не необработанный URL-адрес, как его видит ASP.NET.

Во Flxt.it я лишь поверхностно затрагиваю возможности Twilio. Помимо отправки и получения SMS-сообщений, у них есть невероятно мощная платформа для совершения и приема телефонных звонков. А самое главное, она доступна по принципу оплаты по мере использования — никаких контрактов! Вам больше не нужно быть компанией размером с Twitter, чтобы иметь возможность добавлять телефонные и SMS-возможности в свое приложение.

Попробуйте сами — вы получите кредиты на сумму 30 долларов просто за регистрацию!