Полный гайд по чат-ботам в беседах

Полный гайд по чат-ботам в беседах, image #1

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

Если Вам окажется мало этого гайда, жду в личных сообщениях и моем сообществе — вместе реализуем все ваши задумки на высшем уровне!

Желаю приятного чтения статьи и успехов в освоении чат-ботов!

Отличие ботов в беседах от ботов в личных сообщениях

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

Как подключить чат-бота в беседу

Для начала нам необходимо сообщество, которое мы добавим в беседу — на базе и будет реализован бот. И вот тут уже есть небольшая загвоздка. Крайне важно обезопасить остальных чат-ботов, подключенных в сообщество, от срабатывания в беседе, так как каждое сообщение участников беседы будет запускать всех активных чат-ботов в этом сообществе. Поэтому стоит либо отключить остальных ботов, либо в начале каждого бота, который не должен работать в беседе, создать блок условие, который проверит, откуда пришло сообщение. Реализуем это вот такой простой связкой.

Убираем возможность срабатывать ботам в беседах
Убираем возможность срабатывать ботам в беседах

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

Разрешение на добавление сообщества в беседы
Разрешение на добавление сообщества в беседы

Шаг 2. В меню сообщества появится приложение добавления сообщества в беседы. На скриншоте оно слева. Нажав на него, выбираем нужную нам беседу и сообщество добавляется туда.

Добавление сообщества в беседу
Добавление сообщества в беседу

Шаг 3. Даем нужные разрешения и права сообществу. Для этого заходим в управление сообществом — приложения — настройки приложения Bot Pod — выбираем нужную беседу и даем полный доступ к переписке.

Доступ к переписке для бота
Доступ к переписке для бота

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

Даём боту права администратора
Даём боту права администратора

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

Задача № 1. Поощрить тех кто помогает в беседе.

Работать это должно так: Пользователь отвечает другому пользователю на сообщение или отмечает его в сообщении с ключевыми словами (спасибо, благодарю, спс и тому подобное), бот фиксирует это и начисляет плюсики в карму тому, кого поблагодарили. Выглядит этот бот вот так 👇

Схема бота для задачи №1
Схема бота для задачи №1

Шаг 1 — это проверка на ключевое слово и производные от него. То есть, слова «спасибо», «спасибочки», «спасибище» и тому подобные тоже пройдут, так как проверка нестрогая.

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

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

Начисление баллов тому, кого упомянули
Начисление баллов тому, кого упомянули
{mentioned} — переменная хранящая в себе пользователя, которого упомянули
{quote_author} — переменная хранящая в себе пользователя, которому ответили на сообщение

Ну и, соответственно, блоки «Уведомление пользователя» пишут пользователю, что ему добавили балл в карму. На скриншоте ниже показано, как это работает на практике.

Работа бота в беседе
Работа бота в беседе

Все работает отлично и это несомненно радует нас, но в этом боте могут возникнуть следующие проблемы:
1. Пользователи могут пренебрегать ботом и благодарить сами себя, повышая карму.
2. Пользователи могут благодарить бота в ответ, что вызовет проблемы в работе бота.
3. Пользователи могут благодарить других ботов и сообщества, что также может вызвать проблемы в работе бота.

Сейчас разберем, как решить эти проблемы. Ниже прикрепляю скриншоты бота с уже решенными проблемами — под ними будет объяснение.

Ветвь упоминание
Ветвь упоминание

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

Ветвь цитаты
Ветвь цитаты

Проверку на ответ сообществу реализуем, исходя из того, что ID сообществ — это набор цифр со знаком «-» перед ними. То есть, ID пользователей всегда положительное число, ID сообществ — отрицательное. В блоке «Проверка на ответ сообществу» отсеиваем только отрицательные ID. Это позволит отследить сообщения, в которых ответили какому-либо сообществу.
И тут у нас 2 варианта развития событий:
1. Ответ сообществу, в котором у нас этот бот, то есть ответ благодарностью самому боту. Это мы проверяем на шаге «Проверка на ответ боту».
2. Ответ другому сообществу. Тут уже идём от ответа нет и сообщаем, что сообществам нельзя начислять карму.

Посмотрим, как это работает, на скриншоте ниже.

Работа бота в беседе
Работа бота в беседе

Задача № 2. Наказать хулиганов.

Дабы соблюдать порядок в беседе и бороться с теми, кто нарушает правила или занимается спамом, добавим боту возможность принимать жалобы от пользователей. Работать это будет по аналогии с первой задачей. Ключевое слово в нашем случае — помидор. Получается, если пользователю отвечают на сообщение или упоминают его с этим словом, бот должен начислить переменную «бан» этому пользователю и позвать администратора чата разобраться, не случайно ли это произошло, и при необходимости принять меры по отношению к нарушителю.

Бот, выписывающий баны
Бот, выписывающий баны

Тут так же, как и до этого, есть 2 ветки — верхняя работает по упоминаниям, нижняя — по ответам. Также, в блоках условие идет проверка ключевого слова «помидор». Если условия соблюдаются, первым делом в личных сообщениях пишем администратору, что кто-то нарушает правила, после чего начисляем конкретному пользователю переменную и показываем уведомление об этом.

Но что делать, если жалоба оказалась случайной? Тогда администратор может уменьшить значение переменной «бан» (в нашем случае написанием кодового слова «амнистия»).

Бот для амнистии
Бот для амнистии

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

Посмотрим, как это работает 👇

Работа бота в беседе
Работа бота в беседе

Задача № 3. Удаление хулиганов из беседы.

Для того, чтобы не звать постоянно администраторов, можно сделать бота, который сам будет удалять хулиганов из беседы при достижении определенного уровня переменной «бан». Допустим у нас ситуация когда 3 жалобы на пользователя = удаление из беседы.

Вот так будет выглядеть этот бот 👇

Бот, удаляющий хулиганов из беседы
Бот, удаляющий хулиганов из беседы

Принцип работы тут прост, мы проверяем значение переменной блоком условие, и если это значение больше 2, то удаляем пользователя.

Так это работает в беседе 👇

Работа бота в беседе
Работа бота в беседе

Задача № 4. Прислать кнопки по запросу.

Это крайне простой бот, суть его в том, чтобы по ключевому запросу «Бот, включи кнопки» он присылал кликабельные для всех пользователей кнопки — в нашем случае кнопки с правилами чата и инструкцией к сервису TH.Moderator.
Обычные кнопки тут не подойдут, так как после нажатия пропадают, нужно использовать кнопки со ссылками — они останутся в беседе и их сможет нажать любой пользователь. Под кнопками со ссылками и будут находиться ссылка на пост с правилами беседы и ссылка на сайт с инструкцией к сервису.

Бот, присылающий кнопки для всех пользователей
Бот, присылающий кнопки для всех пользователей

Вот так это выглядит в беседе 👇

Работа бота в беседе
Работа бота в беседе

Задача № 5. Прислать файлы или изображения.

Допустим, нам необходимо по определенному ключевому запросу выслать пользователю файл или изображение. Реализуется это благодаря блоку «условие со случайностью». Рассмотрим на примере фотографий с котиками)

Бот, высылающий рандомное фото
Бот, высылающий рандомное фото

Вот так это выглядит в беседе 👇

Работа бота в беседе
Работа бота в беседе

Задача № 6. Показать уровень кармы/кол-во «помидоров».

У пользователей может возникнуть желание узнать свой уровень кармы или количество «помидоров». Это не сложно реализовать, нужно лишь сделать бота, который так же среагирует на определенный запрос от пользователя.

Бот, показывающий данные пользователя
Бот, показывающий данные пользователя

Вот так это выглядит в беседе 👇

Работа бота в беседе
Работа бота в беседе
Итак, я разобрал основные возможности применения чат-ботов в беседах, но это далеко не предел возможностей сервиса TH.Moderator. В дальнейших статьях покажу ещё много интересных ботов!
Если хочется посмотреть, какие ещё бывают боты, переходи в моё сообщество
Нужна помощь в создании ботов — пиши мне в личные сообщения
941 views·24 shares