Введение в ботоведение

Введение в ботоведение

Статьи

Мой доклад на 20 московском WordPress-митапе. Поскольку букв много, то прикрепил ещё и запись с самого митапа – я старался не отставать от текста, но всегда ж как обычно))

Исторически так сложилось, что наибольшее влияние на изучение мной каких-либо дисциплин повлияли высшие учебные учереждения, а также подход, к который там используется. Поэтому, с небольшим лишь исключением, публичное развитие данной темы (публичное – в смысле доненесения своих исследований и опытов на митапах) я хочу начать что именно с введения в тему, хотя в большой науке сначала идёт постановка проблематики.

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

Раньше были email’лы, потом социальные сети, а теперь вот — боты

Начать я хочу с того, что боты мессенджеров – это логичное сопровождение меняющегося интернета и просто ещё один удобный инструмент. Каких-то диферамбов петь я им не буду.

Когда-то давно, на заре интернета, когда ютуб был юн, мы верстали на таблицах и сидели на форумах, основой «живого» взаимодействия с любым приложением была электронная почта:

  1. с помощью неё мы регистрировались на сайте (а на WordPress это до сих пор единственный способ зарегистрироваться из коробки);
  2. получали уведомления, что кто-то в сети опять неправ;
  3. сайты поздравляли нас с днём рождения, в конце концов (а Госуслуги до сих пор так делают).

И скорее всего было много чего ещё, всего не упомнишь, а составить подробный каталог – не цель сегодняшнего доклада. К слову, e-mail’ы до сих пор находятся в строю, хотя конечно былой лоск иславу они утратили. А у кого-то их вообще нет. Затем, на смену email’лам нам пришли социальные сети. Не только в томсмысле, что общаться теперь стали там, а что множество взаимодействий перекочевало под их инфраструктуру:

  1. авторизоваться на сайте через социальную сеть быстрее и проще — не нужно помнить почту, а главное – придумывать пароль;
  2. взаимодействие с аудиторией многие площадки перенесли в группы, хотя и по сей день остаются консерваторы с форумами и блогами;
  3. появились мини-приложения, которые вообще подразумевают, что наосновной сайт пользователь может не заходить, а получать нужные данныепрямо в уютном контактике.

Конечно, не все возможности и задачи отняли соцсети у почт, но много что перешло туда, и нужно отметить, перешло очень удачно. Но провидение неумолимо и на смену соцсетям пришли мессенджеры. А с ними и боты. По правде сказать, первые боты появились ещё в социалках, но истинное величие обрели, конечно же, в мессенджерах, в первую очередь в телеграме.

Что такое чат-боты и где применяются?

Основная цель ботов, на мой взгляд, заключается в решении 2 задач:

  1. увеличении вовлечения пользователей в работу с сайтом (здесь каждый может преследовать свои плюсы);
  2. как следствие из первого – снижение нагрузки на человека от увеличения вовлечения пользователей. Уже не помню, когда появились онлайн-чаты на сайтах, где можно было пообщаться с техподдержкой / продавцами онлайн, но это новшество было прям крутым.

И чем больше было людей, кому удобнее было общаться таким образом, тем сильнее возрастала нагрузка непосредственно на операторов.

Так мы и докатились до ботов. По сути – это просто программа, которая отвечает определённым поведением на действие пользователя. Или не отвечает – всё зависит от задач, программы и лености разработчика. И в реальности мы имеем лишь развитие инструментов взаимодействия с этими программами – если раньше нам был доступен ввод ключевых слов, на которыебот реагировал и что-то нам пересылал, то теперь их возможности (в первую очередь в Telegram) сильно возросли.

Что же они умеют?

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

Во-вторых – и продолжая первый пункт – мы хотим, чтобы бот забирал с сайта новые публикации и размещал в канале. Если не изменяет память, то в социальных сетях это делалось хуками через API, а в том же телеграме это прекрасно делает бот.

Бот может быть «смотрящим за каналом». Большая аудитория, множество активных участников и разразиться спамом, нецензурной лексикой и обсуждением KDE на аниме-канале может каждый в тот момент, пока админ спит. Бот не спит и соответсвенно может стереть сообщения, выписать предупреждение или вовсе забанить участника. Кроме того, он может также выполнять роль фейс-контроля и не пускать на канал других ботов и прочих незваных гостей.

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

И конечно же, легион ботов разной направленности, от перевода языков до расшифровки звуковых сообщений в текст. Но в любой его программе будет всё равно единая основа: действие => ответ на действие.

Обзор плагинов и конструкторов для создания чат-ботов

Мы подошли к главному – желание заиметь себе электронного миньона есть, нокто бы дал?

Есть два пути и самый простой из них – обратиться к уже готовым. Это могут быть либо плагины (или библиотеки), или же конструкторы ботов. Поскольку мы всё таки про WordPress, давайте подробнее остановимся на плагинах. Плагинов для ботов не то, чтобы мало, но и не сказать, чтобы много. Основная причина, которая мне видится – это область применения.

WP Telegram (Авто публикация и уведомления)

Основная цель плагина — это отправка уведомлений о выходящих постахи всяких обновлениях на сайте, а также подмена собой стандартных уведомлений email-писем.

https://ru.wordpress.org/plugins/wptelegram/

WP Telegram Widget and Join Link

Логическое продолжение плагина от того же автора. Плагин для размещения фида ленты из канала и кнопки для присоединения к нему.

https://wordpress.org/plugins/wptelegram-widget/

WP Telegram Login & Register

Ещё один плагин, который позволяет авторизовываться на сайте через Telegram oAuth.

https://wordpress.org/plugins/wptelegram-login/

Notification for Telegram

Плагин, который заведует разными нотификациями — от новых заказов вWooCommerce, заполненных форм WPForm, CF7 и Ninjaform, а также всякими событиями внутри WP, например, неудачным логином.

https://wordpress.org/plugins/notification-for-telegram/

Bot for Telegram on WooCommerce

Вот это очень интересный экземляр плагина, поскольку он позволяет интегрировать магазин на WooCommerce прямо в чат мессенджера. Причём там же возможно создание навигации по разделам сайта, что выглядит прям очень круто.

https://wordpress.org/plugins/bot-for-telegram-on-woocommerce/

WP 2FA with Telegram

Плагин добавляет двухфакторную аутентификацию для входа в WordPress с помощью Telegram.

https://wordpress.org/plugins/two-factor-login-telegram/

И немного о конструкторах

Пример такого конструктора

Разбирать и обозревать какие-то конструкторы смысла нет (спонсора по этой теме я не нашёл), поскольку общий смысл их таков:

  1. регистрируем нового бота через @BotFather
  2. с помощью разной степени продвинутости редактора создаём пользовательский путь
  3. используем

Примеры полезного применения чат-ботов «для себя»

Один из первых ботов я написал для того, чтобы следить за жизнью сайта на WordPress, а точнее за операциями, которые внутри него выполнялись. Не помню точно, как это было, но общая концепция примерно такая – мне нужноврежиме реального времени получить удобный отчёт того, что где посчиталосьикуда пошло дальше.

И тут я подумал – а не хлопнуть ли нам по рюмашке использовать ли бота? С экрана мобильного читать достаточно удобно и поставить его можно рядом с экраном. И выглядит прикольно, как сериалы про программистов – красота!

Подумано – сделано. Код максимально простой, как устройство лома, но главное, что быстро и работает.

код botSend

Код не из парижской палаты мер и весов, но работает исправно и по сей день верно служит в разработке и дебаге.

Дальнейшее развитие данный бот получил в сфере оповещений о событиях на сайте. На одном из проектов было принято стратегическое решение следить, ктокогда и с какого устройства и ip неправильно заходит в админку, иначе говоря – пытается осуществить несанкционированный доступ.

Код был несколько переделан, закинут в продакш и по сей день он зорко следитза порядком. Да, подобные плагины есть, но безопасность – дело деликатное издесь лучше заморочится и сделать своё решение. Тем более, что делается оно достаточно быстро.

Кстати, бота можно использовать не только как привратника в каналах телеграмма, но и как КПП для сайта. Есть плагины и интеграции, которые позволяют входить в систему через oAuth, но можно сделать немного по-другому — на манер того, как отправляют пользователю код в SMS, можно отправить такой же код и в бота. Или шагнуть ещё дальше и просто выводить кнопку подтверждения входа пользователя – в этом случае нам нужно получитьот заходящего какой-то индентификатор (email, login, телефон) и попросить в боте подтвердить авторизацию. В этом случае мы исключаем возможность подсмотреть код или неправильно его ввести (поверьте, люди достаточно часто ошибаются при вводе 6 цифр).

Но вернёмся к нашему боту. Ещё одна его итерация – это сообщение о заполнении форм пользователем на сайте. Конечно, оно не заменяло собой CRM-систему, но как оперативная нотификация очень зашло.

Последний, пожалуй, пример, про который хочется рассказать и он напрямуюсвязан с WP – это бот для метрики. В чём была задача – был сайт и группа, которая занималась его разработкой. И была веская необходимость, чтобыежедневно по запросу руководителя человек с доступом скидывал в эту группу некоторые показатели из метрики. Два дня так и было – руководитель даёт команду и кто-то из seoшников идёт в яндекс, фоткает дашборд и скидывает в чат.

«Не круто» – подумал я и написал автоматизацию сего действа. Здесь уже нужно запустить бота не по событию где-то в API, а по команде. Вот здесь нам уже очень понадобится такая вещь, как webhook.

Для начала нужно рассказать телеграмму, чтобы он пересылал командыв наш API:

https://api.telegram.org/bot%token_here%/setWebhook?url=%api_url_here%

В данном случае использовалась очень простая функция, которая выполняла обязанности диспетчера:

function botFlowSwitcher()

Далее просто забираем из метрики нужные данные:

function getStat()

И отправляем получателю.

Всё описываемое работало и работает на WordPress сайтах и по сей день мною используется, как готовый модуль, который я при надобности интегрирую в сайт и чуть донастраиваю.

Разбор класса для разработки чат-бота

Итак, мы вышли на финальную прямую, где я хотел бы показать собственное видение класса для Telegram-бота, этакий скелет, который я беру и довожу подконкретный проект напильником.

Класс называется TelegramBase, хотя его можно назвать и VeryBase. Однако, большинство возложенных на него задач он успешно закрывает.

А вот теперь это всё, что я хотел рассказать о введении в ботоводство.

Благодарю за внимание!

Анатолий Куликов

Анатолий Куликов

Автор блога, веб-разработчик
  • at sign
  • vk logo
Комментариев нет

Добавить комментарий

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