Автопилот + Беседы ВКонтакте - Пример настройки

Полный пример настройки бота для вашего сообщества
Полный пример настройки бота для вашего сообщества (Беседа от сообщества)
ВНИМАНИЕ! Есть особенности бесед сообществ — тех, где создатель-владелец — само сообщество.
Сообщество-владелец НЕ ПОЛУЧАЕТ уведомлений Callback API о самостоятельном вступлении и выходе. Поэтому сообщество-владелец НЕ может приветствовать вступивших в беседу и прощаться с вышедшими.
В качестве welcome-бота добавьте в беседу другое сообщество (например, персонаж для приветствий) и дайте ему права «Администратор» или «Доступ ко всей переписке».

Важная информация:

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

Например: если Вы добавите нашего бота к себе, тогда на его использование тратятся мили у нас (вы не платите), а если сделан Кощей в аккаунте Андрея и включено: «добавление в беседу» для всех, то придется платить владельцу аккаунта — Андрею.

Для выключения возможности добавления сообщества в беседу:

  • переходим в УправлениеСообщенияНастройки для ботов и снимаем галочку: «Разрешать добавлять сообщество в беседы»
Запрещаем добавлять сообщества в беседы
Запрещаем добавлять сообщества в беседы

Вариант 2 (менее радикальный):

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

  • переходим в УправлениеМеню находим пункт «Добавить в беседу» и в настройках видимости ставим галочку: «Только администаторы», т.е. кнопку для добавления в беседу видят только администраторы сообщества.
Приложение будет доступно только администраторам
Приложение будет доступно только администраторам

Особенности и умения

Настройка возможности

  • Настройте сообщество: Управление → Сообщения → Настройки для бота →
    Возможности ботов «Включены» → Разрешать добавлять сообщество в беседы. После этого нажмите «Сохранить» и вернитесь в сообщество. У вас также ОБЯЗАТЕЛЬНО должны быть включены сами сообщения в сообществе! Или я не знаю как вы создаете ботов не включив сообщения :)
  • В сообществе найдите в меню сообщества кнопку «Добавить в беседу» и нажмите ее и выберите нужную беседу. Таким образом вы добавите сообщество в беседу как бота.
  • В самой беседе настройте права (в списке участников найдите бота и дайте доступ к переписке или права администратора беседы).

Возможные права бота

  • Для ответов на вопросы, должен иметь «доступ к переписке».
  • Для авто-удаления подписчиков нужны права Администратора.

При этом имейте в виду! Даже бот-администратор
не может удалять других администраторов беседы ВКонтакте!

Также недавнее обновление ВКонтакте позволило даже ботам не имеющим доступа к переписке реагировать на сообщения (команды пользователя) начинающиеся с /. Например: /старт, /дальше, /купить_монет. Можете поэкспериментировать с этим.

Настройка команд

Примеры настроек смотрите в видео в начале статьи или по ссылкам в первом списке статьи. Но есть важные моменты, которые стоит продублировать:

1) Чтобы бот отвечал не в личку, а в беседу, в действии «Написал сообщение» есть соответствующий переключатель. При переключении с «в ответ» на «в беседу» появляется возможность прописывать номер беседы (её ID для бота). Но тут есть ряд важных особенностей.

  • По умолчанию значение: %peer_id%. Для большинства случаев лучше всего будет оставить эту переменную и не париться.
  • Не пытайтесь найти ID в самой беседе! ID привязан к пользователю и разный для разных пользователей / ботов. Чтобы узнать ID, добавьте бота в беседу и запустите сообщением в беседе команду, в которой будет добавлено сообщение с переменной %peer_id%. Вы можете отправить его как в беседу, так и в личку, это не важно.
  • Важно то, что вы получите число > 2 000 000 000. Например, 2000000001. Именно такие числа Автопилот воспринимает как ID беседы. Если число будет меньше 2 млрд., то сообщение будет уходить «сотруднику»!
  • Если в секции событий команды только событие «написал сообщение» (без проверки в беседе или нет), и при этом в значении %peer_id%, то сообщение будет уходить как в беседу так и в личку (зависит от того куда написали сообщение).
  • Если в секции только «написал сообщение» (входящее), а в значении число, то даже при входящем в сообщество, ответ будет уходить в беседу! Может быть полезно для отправки ссылки на новый пост сообщества в беседу.

2) Для реакции на сообщения в беседе достаточно использовать обычное входящее (событие «написал сообщение»).

3) Если же нужно реагировать только на ключевик отправленный в беседу, добавьте в секцию события условие «Переменная содержит» с переменной%is_conv% и значением = 1.

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

5) Для реакции только в нужной беседе можно добавить условие: переменная %peer_id% равна ID беседы относительно бота. Можно указывать несколько значений через запятую (см. скриншот)

Пример условия для реакции
Пример условия для реакции

Как узнать ID для бота было показано в видео, а пример команды можете увидеть тут

Переменные для условий и действий

  • %peer_id% — содержит ID беседы для бота.
  • %is_conv% — если беседа = 1. Полезно для условия Переменная содержит.
  • %body_2% — при использовании события «Добавился в беседу / исключен из беседы» содержит ID исключающего (например администратора, если удалили, или подписчика, если ушел сам).
  • %object_id% — ID сообщения написанного в беседу. Не знаю зачем ;-)

Беседы и кнопки чат-бота

Да, в беседах тоже можно использовать кнопки! Но механика реагирования на них будет немного другой.

Дело в том, что ВКонтакте при нажатии кнопки в диалоге, отправляет не только текст кнопки, а и «упоминание сообщества» так называемый «псевдоним» (адрес) в виде кликабельной ссылки в начале сообщения.

Например: Если на кнопке написано слово Отменить, то в беседу уйдет:

@skyjoom Отменить

(упоминание, пробел и надпись на кнопке).

Поэтому если вам не подходят: галочка «Реагировать только на «кнопки» и режим ключевого слова «содержащим» в опциях события «Написал сообщение», то нужно добавить исходный вариант записи упоминания. Для случая выше то, что получит бот, будет выглядеть так: [club137276874|@skyjoom] Отменить.

Эта штука содержит ID и псевдоним сообщества.

ID можно получить, например из ссылки на диалог с вашим сообществом (это последнее число в адресе):

https://vk.com/im?sel=-137276874137276874

Псевдоним можно получить из ссылки на ваше сообщество
Это то, что после vk.com/ :

https://vk.com/skyjoomskyjoom

Если у вашего сообщества нет псевдонима (а вместо него что-то типа public137276874), то не гарантирую что сработает. Надо проверить.

Если вдруг не сработает, вы можете проверить в каком именно виде приходит упоминание в настройках Callback API вашего сообщества в ВК. И просто скопировать готовый текст оттуда. Для этого упоминание нужно написать в сообщения сообщества конечно. :) Ну или нажать на кнопку в беседе.

Где искать исходник уведомления от ВК, которое уходит в Автопилот
Где искать исходник уведомления от ВК, которое уходит в Автопилот

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

Вернуться на главную страницу инструкций
7611 views·168 shares