Полный гайд по чат-ботам в беседах
Всех приветствую, меня зовут Александр Заманов, я занимаюсь контент-менеджментом и чат-ботами в социальных сетях. Сегодня я расскажу о чат-ботах в беседах, разберу их отличие от ботов в личных сообщениях и покажу, как реализовать самые распространенные функции.
Если Вам окажется мало этого гайда, жду в личных сообщениях и моем сообществе — вместе реализуем все ваши задумки на высшем уровне!
Желаю приятного чтения статьи и успехов в освоении чат-ботов!
Отличие ботов в беседах от ботов в личных сообщениях
Главное отличие чат-ботов, которые подключены в беседу, а не просто в сообщения сообществу, в том, что работают они не с одним конкретным пользователем, а сразу со всеми пользователями беседы, что подразумевает собой и специфику их применения. В беседах будет неуместно собирать данные пользователя для заявки и консультировать его. А вот делать прогревы с помощью чат-ботов, реализовывать всевозможные игровые механики, да и в целом следить за порядком, наказывая хулиганов и поощряя тех, кто помогает другим — отличная задача для чат-бота в беседе.
Как подключить чат-бота в беседу
Для начала нам необходимо сообщество, которое мы добавим в беседу — на базе и будет реализован бот. И вот тут уже есть небольшая загвоздка. Крайне важно обезопасить остальных чат-ботов, подключенных в сообщество, от срабатывания в беседе, так как каждое сообщение участников беседы будет запускать всех активных чат-ботов в этом сообществе. Поэтому стоит либо отключить остальных ботов, либо в начале каждого бота, который не должен работать в беседе, создать блок условие, который проверит, откуда пришло сообщение. Реализуем это вот такой простой связкой.
Теперь, когда мы обезопасили остальных ботов, начнем процесс подключения бота к беседе.
Шаг 1. Даем разрешение добавлять в беседы. Для этого заходим в управление сообществом — сообщения — настройки для бота. И уже в открывшихся настройках проставляем галочку как на скриншоте ниже.
Шаг 2. В меню сообщества появится приложение добавления сообщества в беседы. На скриншоте оно слева. Нажав на него, выбираем нужную нам беседу и сообщество добавляется туда.
Шаг 3. Даем нужные разрешения и права сообществу. Для этого заходим в управление сообществом — приложения — настройки приложения Bot Pod — выбираем нужную беседу и даем полный доступ к переписке.
После этого заходим в саму беседу и даем боту права администратора в ней, чтобы он полностью смог реализовать все возложенные на него обязанности.
На этом подключение заканчивается и можно приступать к созданию самого бота. Дальше я расскажу, как реализовать самые распространённые задачи на простых примерах.
Задача № 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. В дальнейших статьях покажу ещё много интересных ботов!Если хочется посмотреть, какие ещё бывают боты, переходи в моё сообщество
Нужна помощь в создании ботов — пиши мне в личные сообщения
