Игра-викторина по Звездным войнам, работающая через SMS, с помощью PHP и Twilio

Автор: | 02.08.2026

На этом выходном миллионы кинозрителей будут стоять в очереди и сидеть в кинотеатрах, ожидая выхода фильма «Пробуждение силы». Мы подумали, что стоит дать им развлечение без спойлеров в виде викторины по Звездным войнам, работающей через SMS.

Если вы хотите поиграть, отправьте свое имя на номер 74310.

Это приложение работает на 40 строках PHP и текстовом файле, полном вопросов. Все, что вам нужно, чтобы воссоздать его, — это аккаунт Twilio и сервер, на котором можно хостить файл PHP.

Зарегистрируйтесь для получения бесплатного аккаунта Twilio и купите номер телефона.

Прокрутите вниз до URL-адреса запроса сообщения и введите URL-адрес вашего сервера PHP, дополненный trivia.php. Он будет выглядеть примерно так:

Отправьте сообщение на свой новый номер Twilio и посмотрите, что произойдет.

Теперь, когда мы можем ответить на сообщение, давайте изменим эту переменную $message в зависимости от состояния игры.

Переменные сеанса — это глобальные переменные, которые сохраняются между запросами.

Это означает, что если мы установим $_SESSION[‘name’], когда новый игрок отправляет сообщение, это значение будет доступно на протяжении всей нашей «конversations». Мы будем использовать переменные сеанса, чтобы отслеживать имя игрока, счет и правильный ответ на вопрос, который был задан.

Когда игрок отправляет сообщение на ваш номер, Twilio делает HTTP POST-запрос на ваш файл PHP. Текст сообщения хранится в $_POST[‘Body’]. Первый раз, когда мы получаем сообщение, мы предположим, что это имя игрока.

Ниже header(), добавьте функцию, которая будет инициализировать имя и счет, а затем вернет сообщение приветствия. Мы также заменим предыдущее сообщение на вывод этой функции:

Отправьте свое имя на номер и получите приветствие от Йоды.

Создайте файл questions.txt и заполните его значениями отсюда.

Выше $message = welcome(), добавьте функцию, которая:

— возьмет строку из questions.txt

— разделит ее по разделителю |

— установит переменную сеанса с правильным ответом

— вернет вопрос в виде строки

Ниже $message = welcome(), добавьте вопрос:

Отправьте сообщение на номер еще раз, и вы получите сообщение приветствия вместе с вопросом.

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

Добавьте оператор if, чтобы собрать все вместе:

Наконец, скажите им свой счет и задайте вопрос:

И это все. 40 строк кода, и у нас есть игра-викторина, работающая через SMS.

Мы обнаружили, что викторина на основе SMS — это забавный способ вовлечь аудиторию на их мобильном устройстве без необходимости устанавливать приложение. Это привлекает людей к их конкурентному характеру, это очень низкая трение и легко запускается для разных случаев.

Если вы хотите улучшить то, что мы только что построили, вот некоторые предложения:

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

— Принимайте несколько правильных ответов. Например, люди расстраиваются, если они отвечают «7» и им говорят, что правильный ответ — «семь».

— Добавьте вопросы с картинками. TwiML будет выглядеть так: