January 23, 2019

Твой первый бот

Наконец-то материал, который реально соответствует тематике канала. Мы будем создавать нашего первого бота, но пока без серверов, программирования и прочего гейства.

Сегодня мы разберёмся в основах, необходимых для понимания того, что вообще происходит.

Как повезло, что именно сегодня Вахид из Махачкалы попросил меня создать ему бота. На его примере я и научу тебя делать себе такого же кайфового бота.

Отец (@BotFather)

Именно здесь ты будешь регистрировать всех своих ботов. Первым делом он попросит у тебя имя, которое будет отображаться сверху бота (в любой момент его можно будет поменять). Вахид попросил нас назвать бота “Вахид Ногти Махачкала”. После этого бот предложит дать @юзернейм боту (в нашем случае - @beauty_vahid_nails_bot, его уже поменять нельзя).

Отлично! Вахиду выдали ключи от своего новенького бота (в прямом смысле). Красным цветом мы выделили токен — специальный набор символов, с помощью которого мы можем управлять нашим ботом (это как ключи от машины). Он позволяет нашей (или чужой) программе контролировать этого бота. Будь аккуратнее и никогда никому его не показывай, ведь тогда ты потеряешь власть над своим детищем.

Как вообще работают боты?

Чтобы начать что-то делать, надо понять как это работает (только если ты не <имя любого политика>). Как бот понимает, что мы от него хотим? Представь (или вспомни), что ты работаешь на заводе. По конвейеру к тебе едут различные предметы. Сначала ты определяешь тип этого предмета (в случае бота — текст сообщения, картинки и т.д.). Затем, в зависимости от различных свойств предмета, ты кладёшь его в определенную коробку и проверяешь по собственным критериям. Например, содержит ли сообщение слово “Хуй”. Если всё-таки содержит, то ругаешь пользователя за сквернословие (отправляешь ему сообщение с заготовленным текстом). Как ты понимаешь, объяснять боту это надо не на пальцах, а на языке программирования (об этом мы поговорим как-нибудь в другой раз). При использовании специальных конструкторов ботов все проверки за нас делает уже готовая программа, которой мы упрощённо описываем, что хочешь Вахид.

И чё дальше?

Теперь поковыряемся в самом конструкторе. Вахид сказал, что перед записью он хотел бы лично пообщаться с каждым клиентом. Не проблема! Воспользуемся конструктором

Сбор сообщений (@LivegramBot)

Это один из самых простых конструкторов. С его помощью мы можем создать бота, который бы собирал все сообщения и пересылал бы их нам в одно место, как мой. Зачем это нужно? У Вахида не будет миллиона ненужных чатов и он по-прежнему останется анонимным. Удобно? Вахиду - да.

Отлично! Мы дали токен Лайвграму. Теперь у него есть полный контроль над нашим ботом. Надеюсь, он будет бережно собирать сообщения Вахида.

Это был один из примеров того, как можно по-быстрому себе намутить хоть какого-то рабочего бота. Давайте захотим что-нибудь посложнее?

Запись на приём (@ManyBot)

После запуска своего личного бота у Вахида появилось более 5 миллиардов клиенток. Естественно, что теперь Вахид не может ответить на все сообщения. Я посоветовал ему создать своего бота, который помог бы ему записывать людей на определённое время, эдакий обработчик заказов.

Повторяем все те же шаги, что и в лайвграмме: добавляем токен в бота и радуемся жизни. На этом сходства заканчиваются и начинается анальная боль.

Так получилось, что ManyBot хоть и довольно мощный инструмент, но до жути неудобный, поэтому мы решили сделать гифки, чтобы немного упростить понимание этой материи.

В отличие от Livegram, Manybot настраивается в вашем же боте, и имеет в себе хуеву тучу функций и мелкую инструкцию к каждой из них.


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


Теперь добавим кнопку для создания заказа на главный экран пользователя.


После отправления юзером информации по заказу, она отправляется администраторам бота, и они могут её посмотреть. Вот так Вахид видит свои заказы:


Довольный Вахид

Как вы понимаете, Вахид - это собирательный образ человека, который хочет своего бота, но ничего не понимает в них. На примере старого бродяги, Вахида, я показал, что не обязательно просить своих братьев написать что-то эксклюзивное. Некоторые простые задачи можно вполне себе закрыть одним из таких бесплатных решений. Сбор информации далеко не всё, что может @ManyBot. Советую самим ознакомиться и поиграться с ним. Это довольно забавное занятие)).

Одним лайвграмом и мэниботом конструкторы не ограничиваются. Есть один очень мощный проект - botmother.com, которому можно было бы посвятить не одну статью, но, как-нибудь в другой раз.

Но самым лучшим решением, естественно, является собственный бот, который написан под собственные нужды.


Как делать своих ботов, не прибегая к конструкторам? На каком языке лучше писать ботов? Как раскручивать телеграм?

Вместе разберёмся на канале @boterbrodsky