Вконтакте
Подключаем бота к группе Вконтакте
Максимальная длина текстового сообщения 4096 символов
- доступно на Бесплатном тарифе

- доступно на Базовом тарифе

- доступно на тарифе Стандарт

- доступно на тарифе Премиум

Переходим в раздел "Каналы" и выбираем Вконтакте.

Подключение бота ВКонтакте
Если ранее Вы не авторизовывались через Вконтакте на Salebot, то увидите такую кнопку. Нажимаем на нее.

Авторизация Вконтакте для получения списка групп, в которых Вы являетесь Администратором
Далее будет выведен список со всеми группами, в которых Вы являетесь администратором, а следовательно, у Вас есть права для подключения к ним бота. В списке будут также отображены группы, у которых отключены сообщения. (Для включения сообщений необходимо перейти в настройки группы, в разделе "сообщения" поставить галочку "разрешить сообщения").
Если какая-то из ваших групп уже подключена к другому проекту, будет указан номер этого проекта.
В качестве примера подключим группу “Тест”.

После нажатия "Подключить" необходимо разрешить системе доступ к основным разделам группы ВКонтакте (здесь также жмем Разрешить).

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

Список ботов ВКонтакте
На этом подключение бота к группе ВКонтакте завершено.
Вы можете отслеживать с какого именно места/источника перешел пользователь который пишет в сообщения группы.
Для чего это можно использовать:
1. Оценивать эффективность контента, в котором даёте помеченную ссылку на сообщения группы и призываете написать вам.
2. Для запуска в боте определенной ветки воронки, проверяя наличие переменной/метки. Давать разный контент в зависимости от того, откуда пришел пользователь.
Как пользоваться:
- Ссылка на бота Вашей группы отображена рядом именем группы в списке ботов Вконтакте, скопируйте ее

- Дописываем к полученной ссылке метки Передать можно два параметра: ref и ref_source
Получаем ссылку следующего вида:
https://vk.com/im?sel=-198248940&ref=параметр1&ref_source=параметр2
вместо “параметр1” и “параметр2” вписываете значения своих меток
Есть еще 2 варианта ссылок:
vk.me/group_name?ref=параметр1&ref_source=п араметр2
где group_name - идентификатор вашего сообщества
или
vk.com/write-group_id?ref=параметр1&ref_source=параметр2
где group_id - уникальный числовой идентификатор сообщества
Например, отследим сколько пользователей пришло в https://vk.com/public202836320 с телеграм канала Test.
Для начала соберем ссылку, например, такую:
vk.me/public202836320?ref=telegram&ref_source=test
или вот такую
vk.com/write-202836320?ref=telegram&ref_source=test
Обратите внимание, что в ссылке должен быть только один знак вопроса ?, далее мы присоединяем параметры через знак апмерсанта &
И разместим в канале, при переходе по данным ссылкам откроется диалог и на любое сообщение пользователя е му запишется две переменные в Salebot:

Получение меток из прямых ссылок ВКонтакте
Заходим в Каналы, включаем все события для бота, как на скрине:

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

Колбек на событие Пользователь оставил комментарий
где 10 — id поста, под которым был оставлен комментарий
"неплохой набор" — текст оставленного комментария
Дополнительные параметры сохраняются в переменные:

Дополнительные переменные колбека на событие Пользователь оставил комментарий
wall_reply_text — текст комментария, который оставил пользователь
wall_reply_id — id комментария
wall_reply_post_id —id поста, который комментируют
wall_reply_to_user — id пользователя, которому ответили
wall_reply_to_comment — id комментария, который оставили
client_wall_repost

в данном случае 10 — это id поста, который репостнули
Дополнительные параметры сохраняются в переменные:

Дополнительные переменные к колбеку на событие Пользователь сделал репост
wall_repost_text — текст, который пользователь добавляет к репосту
wall_repost_post_id — id поста, который репостнули
client_group_join
Когда у вас добавится новый подписчик, коллбэк будет отображаться так:

Колбек на событие вступление в группу
В переменную сохраняется значение join_type

Если у вас закрытая группа, то после одобрения заявки значение переменной изменится:

client_group_leave

client_liked_post

колбек на событие Клиент лайкнул пост
в данном случае 1 — id поста, который лайкнули
Вы можете настраивать разные реакции на колбеки, например, на лайк определенного поста. Например, присылать сообщение клиенту в лс:

Обработка колбека на событие Клиент лайкнул пост 1

Пример ответа бота из карточки клиента
В условии блока п ервостепенной проверки стоит "1" это id поста, лайк под которым нужно проверять. Если убрать число и оставить client_liked_post, то реакция будет приходить на любой пост, который лайкнули

Пример ответа бота на лайк поста клиенту
При лайке, репосте, вступлении в группу и выходе из неё клиент не создаётся
Если клиент не давал разрешения на сообщения или не писал ничего ранее в личные сообщения группы, то вы первым написать ему не сможете (например, приветствовать в личку сразу при вступлении в группу нельзя)

Такое вы увидите, если клиент не дал разрешение на отправку сообщений или не писал ничего ранее в личные сообщения группы
Работает только на тарифе "Премиум"
Чтобы иметь возможность отвечать под комментариями, необходимо вручную добавить токен.
Для этого заходите в Вашу группу ВК, открываете Управление / Работа с API

Нажимаете "Создать ключ" и копируете его.

Дальше переходите в Salebot, раздел Каналы, и для подключеного бота ВКонтакте выбираете "Показать токены".

В открышейся форме вставляете скопированный токен и нажимайте на кнопку "Добавить".

Добавление ключа для комментирования на стене сообщества ВКонтакте
Описание
Пример
Пример кода для копирования
Видеоразбор
vk_create_comment(post_id, message, reply_to_comment, sticker_id)
Параметры:
! post_id — id комментируемого поста
! message — текст комментария
reply_to_comment — id комментария, на который отвечаем
sticker_id — id стикера
Если не передавать необязательные параметры, то функция будет выглядеть так:
vk_create_comment(post_id, message)
Итак, разберем на практике как добавить комментарий на стене нашего сообщества.
Для начала определим ид нашего поста:
Открой те пост в отдельном окне и обратите меня на адрес поста в адресной строке браузера:

Определение id поста, который будем комментировать
Последняя цифра после знака подчеркивания и есть искомый нами ид поста.
Далее идем в наш проект и настраиваем команду отправки комментария в к алькуляторе нужного блока воронки:

Функция отправки комментария под постом с id = 1
Теститруем:

Отправка комментария под пост с id=1
При этом обратим внимание на значение переменной k в карточке клиента:

Ответ сервера ВКонтакте
Здесь мы можем получить id нашего комментария.
Теперь ответим на комментарий нашего клиента. Ранеее было рассмотрено получение колбека при комментировании нашего поста. Повторим разобранное. Прокомментируем наш пост и зайдем в карточку клиента в нашем проекте:

Колбек при написании комментария

Переменные, получаемые вместе с колбеком
Настроим реакцию на получаемый колбек - отправим благодарность нашему клиенту:

Отправка комментария в ответ на комментарий клиента

Скрин поста с нашими экспериментами
/*Отправка комментария под пост*/
k=vk_create_comment(1, 'Комментарий')
/*Отправка благодарности на комментарий от клиента*/
k=vk_create_comment(1, 'Спасибо за проявленный интерес!',wall_reply_id)
Чтобы можно было добавить бота в чат, необходимо в настройках включить это разрешение:

Подключение возможностей бота
Бот с правами администратора видит все сообщения в чате. Если бот не обладает этими правами, бот видит только те сообщения, где его упомянули через символ @
Если в чате кто-то перешлет сообщение, то в боте появятся эти переменные. В них будет указано кто и что процитировал.
from_id
reply_from_id
reply_text
reply_attachments
Переменная from_id хранит идентификатор того, кто отправил сообщение.
Описание
Примеры
Пример кода для копирования
Видеоразбор
vk_remove_chat_user(member_id)
Параметры:
! member_id — id пользователя, которого нужно исключить. Здесь же вы можете использовать значение from_id.
Как правило из чата удаляют в случае употребления ненормативной лексики. Давайте разберем как выполнить исключение из чата при помощи бота.
Вводим бота-администратора в наш чат

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

Настройка блока для исключения клиента из чата
Тестируем:

Бот исключил из чата ВКонтакте пользователя, написавшего условное слово
vk_remove_chat_user(from_id)
Описание
Примеры
Пример кода для копирования
Видеоразбор
vk_get_name(member_id, full)
Параметры:
! member_id — id пользователя. Здесь же вы можете использовать значение from_id.
! full - признак какие данные выдать. Может принимать значение True, тогда будет выдано имя и фамилия пользователя, иначе (False) - только имя
Для получения имени и фамилии клиент напишем функцию со следующими значениями параметров:

Получение имени пользователя, написавшего в чат
Тестируем

sobesed=vk_get_name(from_id, True)
Описание
Примеры
Пример кода для копирования
Видеоразбор
vk_delete_last_message()
Параметры: НЕТ
Удаляет последнее сообщение в чате. На сообщения из диалога бота с клиентом не распространяется!
Вернемся к примеру с исключением из чата в случае употребления ненормативной лексики. Добавим удаление сообщения с таким содержанием:

Настройки блока для исключения из чата с удалением сообщения
vk_delete_last_message()
Описание
Примеры
Пример кода для копирования
Видеоразборы
vk_send_sticker(platform_id, sticker_id)
Параметры:
! platform_id — id клиента в мессенджере
! sticker_id — id стикера.
Как узнать id стикера?
Отправьте стикер в чат и в разделе переменных клиента появится переменная sticker_id

Скрин раздела переменных клиента из карточки клиента
Проверим отправку стикера в чат:

Отправка стикера
otpravka = vk_send_sticker(platform_id, 3384)
Схему кармабота собирать не нужно, мы сделали это за вас! В разделе Шаблоны уже есть готовая воронка, ее нужно только установить и настроить. По ссылке ниже вы найдете подробное описание.
Для работы Кармабота вам необходимо создать отдельную группу в ВК. В разделе "Управление - Сообщения - Работа в боте" вам необходимо поставить галочку "Разрешать добавлять сообщество в чаты"

После этого в меню группы Кармабота добавится следующее:

Нажимаете и выбираете, в какую беседу добавлять будущего бота:

Далее заходите в группу, где находится эта беседа. Нажимаете в меню справа "Сообщения":

Выбираете нужный чат. В нем кликаете на количество участников (вверху чата), в выпадающем окне устанавливаете боту права администратора

Назначать администратором обязательно, иначе бот в беседе работать не будет!
- начислять +1 кармы, если один пользователь процитировал другого и поблагодарил
- начислять +5 к карме по команде
- исключать из чата по команде "бан"
- удалять сообщения с нецензурными словами
Если участник чата благодарит сам себя, ему приходит сообщение:

Если забывает процитировать другого, то получает напоминание:

Если цитируют самого Кармабота, то:

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

Сообщения от админов бот удалять не может, как и исключать их из беседы
В карточках могут использоваться фотографии с соотношением сторон ТОЛЬКО 13:8 (Например, 1300 на 800 пикселей). Если взять другие фото, сообщение от бота НЕ придет
Требования:
•Пропорции изображения: 13/8;
•Минимальный размер: 221х136;
•Заголовок, максимум 80 символов;
•Подзаголовок, максимум 80 символов;
•Один элемент карусели может содержать не больше 3-х кнопок
Рассмотрим на примере карусели из 3 карточек. Для создания карточек вам нужно в поле "Калькулятор" написать следующее:
p = [{"title":"заголовок", "description": "ОПИСАНИЕ КАРТОЧКИ 1", "image": "ССЫЛКА НА КАРТИНКУ 1", "buttons":[{"text":"ТЕКСТ КНОПКИ 1"}]},{"title":"заголовок", "description": "ОПИСАНИЕ КАРТОЧКИ 2", "image": "ССЫЛКА НА КАРТИНКУ 2", "buttons":[{"text":"ТЕКСТ КНОПКИ 2"}]}, {"title":"заголовок", "description": "ОПИСАНИЕ КАРТОЧКИ 3", "image": "ССЫЛКА НА КАРТИНКУ 3", "buttons":[{"text":"ТЕКСТ КНОПКИ 3"}]}]
r = send_carousel(p, 'ТЕКСТ ПЕРЕД КАРУСЕЛЬЮ')
То есть сначала записываем массив с title, description, image, buttons в переменную p (вы можете назвать переменную иначе), а далее используем ее в методе send_carousel(p, 'ТЕКСТ ПЕРЕД КАРУСЕЛЬЮ')
Вы можете воспользоваться табличкой и просто вставить нужные значения заголовков, ссылок и тд, а потом просто скопировать в ваш блок

В поле "Ответ" оставляем #{none}


В кнопки карточек карусели вы можете вставлять ссылки, тогда при нажатии на кнопку пользователь перейдет по ссылке
Чтобы вставить ссылку в кнопку на карточке, запишите в массив так (на примере одной карточки)
p = [{"title":"заголовок", "description": "ОПИСАНИЕ КАРТОЧКИ 1", "image": "ССЫЛКА НА КАРТИНКУ 1", "buttons":[{"text":"ТЕКСТ КНОПКИ 1", "url":"ССЫЛКА ДЛЯ КНОПКИ" }]}]

Для отправки нескольких картинок используйте функцию:
vk_send_some_photo(platform_id, image_list, text, dont_parse_links, disable_mentions)
platform_id — id клиента в мессенджере
image_list - массив картинок (подробнее ниже)
text - необязательный параметр, текст сообщения с картинками
dont_parse_links - отключение превью ссылок
disable_mentions -отключение уведомлений
Пример
image_list: '["Ссылка на картинку 1", "Ссылка на картинку 2", "Ссылка на картинку 3"]'
Пример запроса:
vk_send_some_photo('55741919977', '["https://mobimg.b-cdn.net/v3/fetch/5e/5e65ccfa836667c2747afed39c530952.jpeg", "https://mobimg.b-cdn.net/v3/fetch/c7/c7218e3b6c4aa73c29e356d80473648f.jpeg"]', 'Сообщение над картинками')
Если клиент отреагировал на сторис, в диалог автоматически придет уведомление об этом:

Данные о сторис будут в разделе "Информация о клиенте" в переменных:
story_id - идентификатор сторис
story_owner_id - владелец сторис

Когда пользователь отправляет отклик на товар, ему назначаются следующие переменные:
market_description — описание товара (берется из карточки товара)
market_title — заголовок товара
market_price — стоимость товара
market_id — id товара
Чтобы в вашего бота передавались ответы из Форм сбора заявок, включите переключатель "Заполнение лидформы"

Тогда при заполнении лидформы вы получите коллбэк lead_forms_new, а в карточке клиента появятся переданные из лидформы переменные

Вконтакте не поддерживает ссылки с ключом подписки, для этого был сделан отдельный минилендинг для вконтакте, работающий как приложение платформы.

Рисунок 5
Подробнее можно прочитать по ссылке:

Рисунок 6 - пример установки приложения в группу
Если вы видите это на своем минилендинге, то приложение не установлено!

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

Эта ошибка означает, что в сообществе установлено максимальное количество серверов для работы с Callback API.
Чтобы решить проблему, необходимо зайти в Управление группы - Настройки - Работа с API - Callback API. На рисунке ниже стрелочкой выделена кнопка управления серверами. Все лишние и неиспользуемые сервера следует удалить. После этого предпринять еще одну попытку подключения.


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

Рисунок 6
Если у вас не отправляются сообщения и вы в разделе клиенты видите ошибку "This is chatbot feature, change this status in settings", вы не разрешили кнопки в группах вк. Ссылку на эту настройку можно увидеть в разделе "Мессенджеры и чаты" -> "Вконтакте".


Если у вас не воспроизводится аудио на мобильном телефоне, то его необходимо перекодировать в mp3 mono
Если у вас дублируются сообщения в ВК, проверьте количество подключенных серверов в настройках группы.
Для этого за ходите в группу, подключенную к проекту, там открываете раздел Управление - Работа с API:


Далее нам нужна вкладка Callback API, нажимаем:

Удаляем серверы, которые там есть:

После этого заходим возвращаемся в Salebot, открываем Мессенджеры и чаты, удаляем подключение:

и переподключаем заново:

Готово!
Для каждого запроса в проекте должен быть авторизованный вк пользователь, у которого есть нужный рекламный кабинет. Ниже приведен пример авторизации. После чего будет выдан токен для работы с API ретаргетинга.
Если в запросе будет передан емейл не авторизованного пользователя, в ответ будет отправлено сообщение: User {email} - is not authorized
Идентификатор рекламного кабинета можно найти, перейдя в настройки. Скопируйте его: он понадобится для использования функций ретаргетинга.
Идентификатор нужной аудитории таргетинга, можно найти перейдя в раздел Ретаргетинг и нажав на нужную аудиторию. В выпадающем меню выбрать пункт Редактировать правила:
если такого пункта нет, тогда выбираем - Добавить аудиторию
Во всплывающем окне находим абзац с идентификатором аудитории:
Для добавления пользователя в аудиторию ретаргетинга, нужно вызвать функцию: vk_add_to_target_group('email', 'account_id', 'target_group_id', 'contacts', 'ads_client_id')
где:
email - емейл сотрудника в проекте
account_id - идентифика тор рекламного кабинета.
target_group_id - идентификатор аудитории таргетинга.
contacts - (необязательный параметр) список телефонов, email адресов, мобильные рекламные идентификаторы (IDFA, GAID) или идентификаторов пользователей, указанных через запятую.
По умолчанию передается идентификатор пользователя в вк.
ads_client_id - (необязательный параметр) только для рекламных агентств. id клиента, в рекламном кабинете которого будет редактироваться аудитория.
Примеры вызова функции: result = vk_add_to_target_group('[email protected]', '1606728577', '38572961')
с ads_client_id дл я рекламного агентства: result = vk_add_to_target_group('[email protected]', '1606728577', '38572961', '', '1234567')
Передача собственных данных вместо идентификатора клиента: result = vk_add_to_target_group('[email protected]', '1606728577', '38572961', '#{phone}')
Передача одновременно нескольких собственных данных, в примере номеров телефонов:
result = vk_add_to_target_group('[email protected]', '1606728577', '38572961', '78111111111, 782222222, 7833333333')
Для удаления пользователя из аудитории ретаргетинга, нужно вызвать функцию: vk_remove_from_target_group('email', 'account_id', 'target_group_id', 'contacts', 'ads_client_id')
где:
email - емейл сотрудника в проекте
account_id - идентификатор рекламного кабинета.
target_group_id - идентификатор аудитории таргетинга.
contacts - (необязательный параметр) список телефонов, email адресов или идентификаторов пользователей, указанных через запятую. По умолчанию передается идентификатор пользователя в вк.
ads_client_id - (необязательный параметр) только для рекламных агентств. id клиента, в рекламном кабинете которого будет редактироваться аудитория.
Примеры вызова функции: result = vk_remove_from_target_group('[email protected]', '1606728577', '38572961')
с ads_client_id для рекламного агентства: result = vk_remove_from_target_group('[email protected]', '1606728577', '38572961', '', '1234567')
передача собственных данных вместо идентификатора клиента: result = vk_remove_from_target_group('[email protected]', '1606728577', '38572961', '#{phone}')
удаление из аудитории пользователей одновременно по нескольким параметрам, в примере номеров телефонов: result = vk_remove_from_target_group('[email protected]', '1606728577', '38572961', '78111111111, 782222222, 7833333333')
Для добавления аудитории ретаргетинга, нужно вызвать функцию:
vk_add_new_target_group('email', 'account_id', 'name', 'lifetime', 'ads_client_id')
где:
email - емейл сотрудника в проекте, который подключил свой аккаунт к проекту и у которого находится нужный рекламный кабинет
account_id - идентификатор рекламного кабинета
name - название аудитории ретаргетинга — до 64 символов
lifetime - количество дней, через которое пользователи, добавляемые в аудиторию, будут автоматически исключены из нее. Число от 1 до 720
ads_client_id - (необязательный параметр) только для рекламных агентств. id клиента, в рекламном кабинете которого будет редактироваться аудитория.
При успешном запросе в ответ получите идентификатор созданной аудитории: {'id': 41333076}
Примеры вызова функции:
result = vk_add_new_target_group('[email protected]', '1606728577', 'Новая аудитория', 120)
result = vk_add_new_target_group('[email protected]', '1606728577', 'Новая аудтория', 120, '1234567')
Salebot поддерживает возможность создания кнопки об оплате через VK Pay. Для этого в Salebot необходимо включить соответствующую галочку.
ВНИМАНИЕ! И у вас, и у отправителя средств должен быть расширенный статус VK Pay. Чтобы получить его, нужно указать данные паспорта и ещё одного документа на выбор — ИНН или СНИЛС.
Для создания кнопки оплаты в меню выбора типа кнопки стоит выбрать “VK Pay”, после чего появится четыре типа оплаты:
- перевод заданной суммы пользователю
* сумма
* идентификатор пользователя
- перевод заданной суммы группе
* сумма
* идентификатор группы
- перевод произвольной суммы пользователю
* идентификатор пользователя
- перевод произвольной суммы группе
* идентификатор группы
Где:
Идентификатор пользователя - это ид человека, которому будут перечислены деньги (например, 169003040)
Идентификатор группы - это ид группы, в которую будут поступать переводы (например, 212760554).
После активации бота пользователь получит кнопку следующего вида, после клика по которой выведется окно сервиса VK Pay.
Внимание! Независимо от названия кнопки в боте, Вконтакте кнопка будет выглядеть только таким образом:
Для того, чтобы узнать идентификатор пользователя, необходимо зайти на его страницу Вконтакте и посмотреть ид в адресной строке браузера:
Если же пользователь менял имя на более красивое, тогда откройте на просмотр любую фотографию на странице - в адресной строке будет идентификатор:
Аналогично с идентификатором группы - если группа не была переименована, то ее id будет в строке, если же была - можно поискать через фотографии.
Подключить VK Donut нужно в группе Вконтакте
Если Ваша группа подключена к VK Donut, вы будете получать callback сообщения о следующих событиях:
- Оформлена подп иска на группу - client_donut_subscription_create 50 RUB
- Подписка продлена - client_donut_subscription_prolonged 50 RUB
- Подписка отменена - client_donut_subscription_cancelled
- Подписка закончилась - client_donut_subscription_expired
Last modified 2d ago