API ВКонтакте(функции для использования всех возможностей Вконтакте)
Работают только на тарифе Премиум
1 способ:
- Ваше сообщество должно быть подключено к проекту
- Отправьте любое сообщение в диалог с сообществом, куда должны приходить сообщения бота
- В списке клиентов проекта выбираете диалог клиента, которому будете отправлять сообщение
- Копируете значение ID в мессенджере

2 способ:
Получить идентификатор группы/пользователя Вконтакте можно из адресной строки браузера.
Адрес профиля пользователя имеет вид https://vk.com/idXXXXXX, адрес сообщества — https://vk.com/publicXXXXXX или https://vk.com/clubXXXXXX, где XXXXXX — ID страницы. Посмотреть ID можно в адресной строке браузера.
Если профилю или сообществу присвоен буквенно-цифровой адрес, то ID можно определить иначе. Откройте любую фотографию пользователя/сообщества; первые цифры после слова photo (XXXXXX в ссылке вида https://vk.com/photoXXXXXX_YYYYYYY) — это и есть интересующий вас ID.
Найти ID своей страницы вы можете в разделе Настройки → Адрес страницы.

Пример reply-кнопок:
knop={"one_time":false, "buttons":[[{"action":{"type":"text", "payload":"{"button": "1"}", "label":"Red"}, "color":"negative"}, {"action":{"type":"text","payload":"{"button": "2"}","label":"Green"},"color":"positive"},{"action":{"type":"text","payload":"{"button": "2"}", "label":"Blue"},"color":"primary"},{"action":{"type":"text","payload":"{"button": "2"}", "label":"White"},"color":"secondary"}]]}
Пример inline-кнопок:
knop={"inline": true, "buttons": [[{"action": {"type": "open_link", "link": "https://dev.vk.com/", "label": "Оформить"}}, {"action": {"type": "text", "label": "Поддержка"}}]]}
Чтобы убрать у пользователя клавиатуру, необходимо отправить сообщение с пустым параметром
buttons
:{"buttons":[],"one_time":true}
Описание
Примеры
Пример кода для копирования
vk_send_message(platform_id, message, keyboard, reply_to, forward_messages, sticker_id, dont_parse_links, disable_mentions, attachments_photo, attachments_files)
Параметры:
! message — текст сообщения
reply_to — id сообщения для ответа/цитаты
forward_messages — id пересылаемых сообщений (формат списка "{#айдипервогосообщения}, #{второго}, #{итакдалее}"
sticker_id — id стикера
dont_parse_links — создавать сниппет или нет, может принимать значение 1 — создавать, 0 — нет
disable_mentions — отключить уведомление об упоминании в сообщении, для отключения уведомлений передайте в этот параметр что угодно, иначе оставьте пустым
attachments_photo — добавить в медиавложения сообщения фотографии, которые пока не загружены во ВКонтакте, в виде списка ссылок на фотографии в формате:
'["#{url1}","#{url2}"]'
, где
url
- это ссылка на фотографию на доступных ресурсах в Интернете. attachments_files — различные вложения из ВКонтакте. Для использования attachments_files потребуется строка с вложениями, перечисленными через запятую и уже находящимися во ВКонтакте, имеющая следующий вид:
'doc-182762603_638918266, photo-182762603_638918266'
Каждое вложение описываем следующим образом:
<type>-<owner_id>_<media_id>
- где:
<type>
— тип медиа-вложения:photo
— фотография;video
— видеозапись;audio
— аудиозапись;doc
— документ;wall
— запись на стене;market
— товар;poll
— опрос.
<owner_id>
— идентификатор владельца медиа-вложения.
<media_id>
— идентификатор медиа-вложения.
Обратите внимание, если прикрепляется объект, принадлежащий другому пользо вателю, следует добавлять к вложению его access_key в формате
-<owner_id><media_id>_<access_key>
Если присвоить функцию переменной, то в переменную будет помещен id сообщения, который будет необходим для возможно последующего редактирования сообщения.
Отправим сообщение с кнопками и с картинкой, заранее загруженной в нашу группу:

Настройка блока отправки сообщения
Тестируем

Отправка сообщения в чат ВКонтакте
Обратите внимание на значение переменной soob, в которую мы записали результат отправки сообщения

Как видите функция вернула идентификатор отправленного со общения. Это позволяет нам проводить дальнейшие манипуляции над сообщением
knop={"inline": true, "buttons": [[{"action": {"type": "open_link", "link": "https://salebot.site/tutor_reg_1", "label": "Регистрируйся"}}, {"action": {"type": "text", "label": "Отмена"}}]]}
soob=vk_send_message(2000000001, "Выбирай", knop, None, None, None, None, None, None, "photo-217945289_457239047")
Описание
Примеры
Пример кода для копирования
vk_edit_message(platform_id, message_id, text, attachments_photo, attachments_files, keyboard, keep_forward_messages, keep_snippets, dont_parse_links, disable_mentions)
Параметры:
! message_id — id редактируемого сообщения
text — текст сообщения
attachments_photo — добавить в медиавложения сообщения фотографии, которые пока не загружены во ВКонтакте, в виде списка ссылок на фотографии в формате:
'["#{url1}","#{url2}"]'
, где
url
- это ссылка на фотографию на доступных ресурсах в Интернете. attachments_files — различные вложения из ВКонтакте. Для использования attachments_files потребуется строка с вложениями, перечисленными через запятую и уже находящимися во ВКонтакте, имеющая следующий вид:
'doc-182762603_638918266, photo-182762603
638918266'.
Каждое вложение описываем следующим образом:
<type>-<owner_id>_<media_id>
- где:
<type>
— тип медиа-вложения:photo
— фотография;video
— видеозапись;audio
— аудиозапись;doc
— документ;wall
— запись на стене;market
— товар;poll
— опрос.
<owner_id>
— идентификатор владельца медиа-вложения.
<media_id>
— идентификатор медиа-вложения.
Обратите внимание, если прикрепляется объект, принадлежащий другому пользователю, следует добавлять к вложению его access_key в формате
-<owner_id><media_id>_<access_key>
keep_forward_messages — признак необходимости сохранить прикреплённые пересланные сообщения (любое значение)
keep_snippets — признак необходимости сохранить прикреплённые внешние ссылки (сниппеты)(любое значение)
dont_parse_links — признак того, что не надо создавать сниппет (любое значение)
disable_mentions — признак того, что надо отключить уведомление об упоминании в сообщении (любое значение)
Продолжим с Вами предыдущий пример - отредактируем сообщение через 5 секунд

Настройка блока редактирования сообщения
Тестируем:

Редактирование отправленного сообщения в чате ВКонтакте
Блок отправки сообщения:
knop={"inline": true, "buttons": [[{"action": {"type": "open_link", "link": "https://salebot.site/tutor_reg_1", "label": "Регистрируйся"}}, {"action": {"type": "text", "label": "Отмена"}}]]}
soob=vk_send_message(2000000001, "Выбирай", knop, None, None, None, None, None, None, "photo-217945289_457239047")
Блок редактирования:
soob=vk_edit_message(2000000001, soob, 'Долго думаешь', None, 'photo-217945289_457239048', None, None, None, None, None)
Описание
Примеры
Пример кода для копирования
vk_delete_messages(platform_id, message_ids)
Параметры:
! platform_id — id чата в мессенджере
! message_ids – список из conversation_message_id
Вы можете удалить как одно сообщение, так и несколько.
Для удаления нескольких сообщений передайте перечень conversation_message_id сообщений, которые хотите удалить, через запятую в общих кавычках

Согласно представленному примеру будут удалены сообщения с ид 215 и 217, а 216 останется.
vk_delete_messages(2000000001, "217, 215")
Описание
Примеры
Пример кода для копирования
vk_delete_last_message()
Параметры: НЕТ
Удаляет последнее сообщение в чате. На личные сообщения из диалога бота с клиентом не распространяется!
Вернемся к примеру с исключением из чата в случае употребления ненормативной лексики. Добавим удаление сообщения с таким содержанием:

Настройки блока для исключения из чата с удалением сообщения
vk_delete_last_message()
Описание
Примеры
Пример кода для копирования
vk_get_short_link(link, private, user_token)
Параметры:
! link — ссылка, которую нужно будет открывать по короткой ссылке
private — позволяет сделать статистику ссылки приватной (любое значение)
user_token — персональный токен пользователя. Обязательный параметр в случае использования private
Присвойте функцию переменной . Тогда в случае успешного выполнения в переменной будет содержаться короткая ссылка, а в случае наличия ошибок в эту же переменную будет помещен весь ответ сервера.

Результат теста:

vklink=vk_get_short_link('https://www.google.com/')
Описание
Примеры
Пример кода для копирования
vk_send_sticker(platform_id, sticker_id)
Параметры:
! platform_id — id клиента в мессенджере
! sticker_id — id стикера.
Как узнать id стикера?
Отправьте стикер в чат и в разделе переменных клиента появится переменная sticker_id

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

Отправка стикера

otpravka = vk_send_sticker(platform_id, 3384)
Описание
Примеры
Пример кода для копирования
vk_send_some_photo(platform_id, image_list, text, keyboard, dont_parse_links, disable_mentions)
Параметры:
! platform_id — id клиента в мессенджере
! image_list - массив с картинками
text - текст для сообщения с картинками
keyboard - кнопки в сообщении **
dont_parse_links - отключение превью ссылок
disable_mentions -отключение уведомлений
Пример
image_list=["Ссылка на картинку 1", "Ссылка на картинку 2", "Ссылка на картинку 3"]
Отправим нескольких картинок, указав в качестве параметров функции переменные:


Отправим нескольких картинок, заполнив параметры в функции:


/*Отправим нескольких картинок, передав в параметры функции переменные*/
project.image_list=["https://i.ibb.co/991xmY3/00068363.jpg","https://i.ibb.co/qycx2ZT/149.jpg","https://i.ibb.co/w0BnRjM/images-cms-image-000028089.jpg","https://i.ibb.co/Y3h2TWX/images-cms-image-000028098.jpg","https://i.ibb.co/kX4H2Xq/images-cms-image-000028102.jpg"]
vk_send_some_photo(platform_id, image_list, "Тюльпаны")
/*О тправим нескольких картинок, заполнив параметры в функции*/
test=vk_send_some_photo('257328430', '["https://pdds.ru/wp-content/uploads/2022/12/image-1.jpg","https://avto-ravon.ru/wp-content/uploads/2022/02/ravon-r2-.png", "https://rdm-import.ru/image/product/35682/DSC_8767.jpg"]', 'Сообщение над картинками')
Описание
Примеры
Пример код а для копирования
vk_liked_object(type, owner_id, item_id, user_id, user_token)
Параметры:
type - тип объекта
owner_id - идентификатор владельца Like-объекта. Если параметр не задан, то считается, что он равен идентификатору текущего пользователя*
item_id - идентификатор объекта
user_id - идентификатор пользователя в вк
user_token - персональный токен
post
— запись на стене пользователя или группы;comment
— комментарий к записи на стене;photo
— фотография;video
— видеозапись;note
— заметка;photo_comment
— комментарий к фотографии;video_comment
— коммента рий к видеозаписи;topic_comment
— комментарий в обсуждении.
Результат выполнения функции - словарь вида: {"response":{"liked":1,"copied":0}}
liked
— есть ли отметка «Мне нравится» от текущего пользователя (0
— отметки нет,1
— отметка есть);copied
— сделан ли репост текущим пользователем (0
— не сделан,1
— сделан).
Итак, давайте проверим, делал ли клиент с идентификатором 257328430 лайк или репост поста в сообществе Админ.
Для начала определим идентификатор инстересующего на с поста:
- открываем пост на просмотр и из адресной строки забираем цифры после знака подчеркивания в конце строки
Переходим к заполнению параметров функции в поле Калькулятор:

Настройка блока для определения находится ли объект в списке Мне нравится заданного пользователя
Можно отправлять клиента в блок и проверять результат:

res=vk_liked_object('post', -217945289, 3, 257328430)
Описание
Примеры
Пример кода для копирования
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_create_wall_post(token, owner_id, text, attachments, from_group, signed, mark_as_ads, close_comments, mute_notifications, copyright)
Параметры: НЕТ
token - персональный токен ВКонтакте с правами wall
text - текст публикации, если есть вложения, то можно вместо текста передать пустую строку ("")
attachments