Завтра по всему миру мы будем отмечать самый женский день в году. И это прекрасно! Но это значит, что сегодня — день, когда мы поздравляем наших дорогих сотрудниц. И каждый год мы (мужская часть трудового коллектива) думаем, как бы сделать это по-особенному… Цветы, вечерний банкет — все эти милые банальности приятны, но в 21-м веке всем хочется чего-то технологичненького и современненького.
Вот мы в Just AI думали-думали и таки придумали! Под катом — уже готовый туториал, который вы тоже можете запустить прямо сейчас и превратить обычное 8 марта в море позитива!
Что же мы придумали
Как бы вы ответили на вопрос «Какой лучший подарок на 8 марта?» Если читатель — мужчина, то он, наверное, тоже подумает о цветах, комплиментах… И так весь день.
И вот тут мы наткнулись на одно интересное меню… Вот оно
«Интересно»- подумали мы. А что если создать такого чат-бота в Telegram, который будет предлагать меню желаний каждой прекрасной сотруднице нашего офиса? Она выбирает желание, и оно улетает на исполнение одному из коллег. «Да это же как волшебный Джинн из лампы Аладдина!» — девушка просто кликает по меню желаний из списка, оно улетает одному из исполнителей мужчин, и уже через пару минут к ней прибывает добрый молодец с тем, что пожелали! Ну и понеслось…
Далее я покажу, как мы за час запустили такого бота на нашем конструкторе Aimylogic. Вы можете создать его еще быстрее — просто кликнув по уже готовому шаблону, который мы так же подготовили, немного его поменять при желании — и ваше офисное празднование 8 марта заиграет новыми красками! Проверено на нас.
Шаблончик
Как я сказал выше, вы можете просто войти под своей учеткой на Aimylogic и кликнуть по шаблону «Мартовский Джинн», чтобы моментально создать готового бота.
Далее нажмите на кнопку Опубликовать в правом верхнем углу и выберите канал Telegram. Вас попросят указать токен бота в Телеграме. Чтобы его получить, откройте Телеграм-клиент, найдите поиском бота @BotFather и создайте там нового бота. Подробнее о создании бота можно почитать тут.
После того, как вы опубликуете свой проект в канале Telegram, он начнет работать в вашем боте.
Далее я расскажу о том, как все устроено, и что можно поменять в проекте, чтобы сделать его уникальным.
Как все работает
Бот начинает свою работу с приветственного экрана (самый левый в проекте). И далее тут же прыгает на меню с кнопками — это то самое меню желаний. Каждая кнопка соответствует какому-то желанию, которое мы (мужчины) согласны исполнять (ведь всему есть мера).
Конечно же, милая дама может не только кликнуть по кнопке, но и написать желание на клавиатуре. Чтобы бот понял, какому желанию соответствует это текстовое послание, в Aimylogic есть инструмент под названием Сущности. Если вы туда заглянете, то увидите, что это список желаний с различными формулировками каждого из них. Собственно здесь вы можете добавить свои пункты в меню, но не забудьте поменять список кнопок в сценарии.
Когда девушка жмет на кнопку или пишет какое-то желание, схожее по звучанию с тем что есть в сущностях, заполняется переменная $desire — в ней будет храниться то, что в сущностях указано как Сущность. Вот это и полетит к исполнителю вместе с контактными данными представительницы прекрасного пола.
Считаем время
Конечно же, если все дамы будут кликать на все кнопки подряд, то это может спровоцировать перегрузку системы исполнения (то есть нас, мужчин). Поэтому мы предлагаем ограничивать время между двумя желаниями подряд. Например 10 минут. Или 20. Вы можете это менять. На экране, который подписан как Считаем время можно увидеть, как бот рассчитывает время между двумя желаниями.
Собственно тут бот получает текущее время с нашего сервиса, потом создает пару переменных, в которых сохраняет время, прошедшее с предыдущего запроса. На следующем шаге бот просто проверяет условие и либо отправляет заявку исполнителю, либо просит свою собеседницу чуть-чуть подождать.
Как бот выбирает исполнителя желания
Тут все работает так. Мы создаем на Google Drive обычную Excell табличку, куда прописываем всех участвующих в акции мужчин (а вдруг кто-то откажется). Пример такой таблички — docs.google.com/spreadsheets/d/1RFE5hIi7R9QYWC0OzDczL1UZKggcufbINuOLQUKgbl0/edit?usp=sharing
Как видите, в ней две колонки. Идентификатор — уникальное число, которое каждый участник получает при запуске спец-бота (который будет оповещать о поступивших заявках), и имя исполнителя — его увидит дама, пославшая заявку.
Далее ее нужно опубликовать в вебе (Файл — Опубликовать в вебе), скопировать идентификатор из адресной строки и подставить в URL вида tools.aimylogic.com/api/googlesheet2json?id=1RFE5hIi7R9QYWC0OzDczL1UZKggcufbINuOLQUKgbl0 — он будет превращать вашу таблицу в JSON массив с полями, соответствующими названиям колонок. Вот его-то мы и подставляем в HTTP запрос в нашем сценарии в Aimylogic, чтобы бот выбирал одного из участников для исполнения желания.
В переменную $genie мы запишем случайно выбранного исполнителя вот так
_.sample($httpResponse)
(так как Aimylogic поддерживает underscore)Куда отправляется заявка
Отлично! Наш бот принимает желание, выбирает исполнителя из списка в гугл табличке, а дальше должен как-то оповестить этого исполнителя о том, что пора бы ему принести чашечку кофе, организовать легкий перекус или придумать доселе неслыханный комплимент. Но как мы это сделаем?
Мы решили поступить просто. Опубликовали еще одного простенького бота в Телеграме t.me/GenieCenterBot (вы кстати тоже можете использовать его, чтобы не создавать своего отдельно). Он работает по принципу «Убера для таксистов» — то есть предназначен только для исполнителей желаний и просто оповещает о поступлении новой заявки исполнителя. При старте он выдает идентификатор, который и нужно записать в гугл таблицу с перечнем исполнителей. Собственно каждый мужчина, кто участвует, ставит себе этого бота и сообщает идентификатор тому, кто заведует таблицей.
Бот для девушек после выбора исполнителя делает HTTP запрос на API Телеграма, чтобы отправить оповещение.
Что еще можно добавить?
Итак, у нас есть шаблон с ботом-исполнителем желаний. И вы вольны его менять как угодно. Что же можно сделать, чтобы он стал интереснее?
Другой персонаж
У нас это Джинн из лампы Аладдина. И фразочки у него соответствующие. У вас это может быть кто-то другой — Старик Хоттабыч, Золотая рыбка или Двое из ларца :-) Главное — заменить картинки и реплики.
Другой список желаний
Как я уже писал выше, можно изменять как угодно сами желания. Для этого нужно изменить список сущностей и кнопок на экране с меню. Тут все зависит только от того, на что вы, исполнители, готовы ради прекрасных дам…
Кастомные желания
Мы еще сделали так, чтобы наши девушки могли заказывать желания, которых нет в списке. Правда мы не бежим их сразу исполнять (мало ли, что там нажелают). Мы сперва отправляем текст желания на спец доску Trello через тот же сервис IFTTT, голосуем там своим коллективом в закрытом чатике, и потом, если желание проходит нашу «модерацию», добавляем его в бота.
Статистика
Забавная штука — отслеживать, сколько и кому желаний выпало, кто самая активная участница мартовского флешмоба и так далее. Для этого опять же — просто отправляем каждое желание в какую-то табличку на гугл драйве через IFTTT.
Чат с Джинном
А если что-то сломается в течение дня? Или кто-то из исполнителей слишком долго исполняет заявку? За этим нужно пристально следить! А для этого в сценарий можно подключить онлайн чат с оператором (например LiveTex или Webim). Как только девушка кликнет на кнопку Чат с Джинном, управление перейдет к живому человеку, который поможет решить любую проблему.
Праздник к нам приходит
Если вы дочитали до конца, значит, вы уже готовы запустить этого чудо-бота у себя в офисе? Торопитесь, 7 марта в разгаре! А значит, самое время удивлять!