На этом выходном миллионы кинозрителей будут стоять в очереди и сидеть в кинотеатрах, ожидая выхода фильма «Пробуждение силы». Мы подумали, что стоит дать им развлечение без спойлеров в виде викторины по Звездным войнам, работающей через 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 будет выглядеть так: