Как подключить callback api бот вконтакте
Перейти к содержимому

Как подключить callback api бот вконтакте

  • автор:

Не работает бот ВКонтакте, что делать?

В данной статье вы найдете рекомендации для ситуации, когда бот ВКонтакте отвечает не так, как вам хотелось бы.

Например, — бот отвечает «извините, непонятно» — бот отвечает на какие-то фразы, а на другие фразы молчит; — бот не отвечает вообще ни на что — всегда молчит.

Что делать?

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

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

  1. Проверьте разрешения сообщества / группы ВКонтакте.

Чтобы проверить, какие вы выставили разрешения при создании ключа, перейдите в Управление → Настройки → Работа с API.

Здесь вы можете увидеть проставленные разрешения. Убедитесь, что данные права были выданы:* управление сообществом* сообщения сообщества* фотографии

Если какое-то из этих разрешений не было назначено, создайте новый ключ и переподключите канал.

  1. Итак, вы выполнили все шаги выше, но ситуация не разрешилась. Здесь может быть несколько вариантов.
  • Если бот отвечает «Извините, непонятно».

Вернитесь к инструкции по подключению канала. Доработайте свой сценарий. Можете воспользоваться данной инструкцией.

  • Бот не отвечает на определенные фразы

Попробуйте написать боту:

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

Также, проверьте, какие реакции должен давать бот после конкретных слов. Возможно, у вас проблема с блоком Условие, либо неправильно оформлен HTTP-запрос, поэтому бот просто не идет дальше.

  • Если вы пишете /start и бот молчит. Бот не отвечает вообще ни на какие слова.

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

  1. Попробуйте сделать следующее:
  • в вашей группе в ВКонтакте перейдите в Работа с API → Ключи доступа. Удалите все существующие ключи и создайте новый. Скопируйте его. Затем перейдите в сценарий Aimylogic на вкладку Каналы. Удалите все прикрепленные к этому боту каналы ВКонтакте и добавьте канал ВКонтакте с новым ключом.

Если это также не помогло, то напишите в техподдержку.

Как написать в техподдержку

При обращении в поддержку обязательно пришлите следующее:

  1. Сделайте скриншоты переписки с ботом ВКонтакте, чтобы мы могли видеть, как бот реагирует на сообщения
  2. Пришлите общий скриншот сценария, чтобы на скриншоте было видно, что в сценарии есть глобальный блок $TEXT
  3. Пришлите название сценария (название бота в Aimylogic).Например, вот название сценария:

  1. Email, привязанный к вашему аккаунту в Aimylogic.

5) Сделайте скриншот настроек сообщества, чтобы было видно, что возможности ботов включены:

  1. Скриншот разрешений выставленных боту. На скриншоте должно быть видно название сообщества. Скриншот должен выглядеть так:7) Сделайте скриншоты вкладки «запросы».Как найти эту вкладку:

Перейдите в Настройки — Работа с API

Перейдите на вкладку Callback API

Переключитесь на ChatAdapter:

Переключитесь на вкладку Запросы:

Вот этот последний скриншот и нужно прислать в поддержку (чтобы на скриншоте было видно название сообщества).

Callback API Редактировано: 28.08.2020 в 04:45

CallBack API работает по принципу сервера-приемщика. Создается сервер, который постоянно слушает запросы, которые на него приходят в определенном формате. Во время того, как происходят какие-то события в группе бота, сервер ВКонтакте отправляет запрос на Ваш Callback сервер и ждет ответа «ok», в случае, если он его не получил, он снова отправляет запрос. Callback API в EasyVK работает для множественных ботов (несколько групп на одном сервере), кроме того, он поддерживает ключ доступа, с помощью которого злоумышленники не смогут добраться до корня Вашего сервера и не смогут остановить работу бота.

Посмотрите, как подключить и использовать Callback API

const express = require('express'); const app = express(); // Базовый пример easyvk.callbackAPI.listen().then((connection) => < connection.on("message_new", console.log); >) 

# callbackAPI.listen()

Метод поднимает сервер на Вашем компьютере и начинает прослушивать все входящие запросы, обрабатывать события бота и отвечать на запросы сервера ВКонтакте

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

Параметры Callback сервера

  • port — порт сервера, на котором будет работать сервер (сказанул так сказанул)
  • app *- приложение express, на основе которого оудль должен работать
  • groups — массив групп, которые нужно прослушивать, читайте ниже в настройках группы
  • path — путь к серверу бота

easyvk.callbackAPI.listen(< port: process.env.PORT || 8080, path: '/webhook', app >) 

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

  • groupId — ID группы, которую нужно прослушивать
  • secret — Секретный ключ доступа для группы (не обязательно, только если настроили в группе, это по сути пароль для бота)
  • confirmCode — Код подтверждения, который бот должен отправить при первом подключении (берется из инструкции ВКонтакте по подключения сервера)

Пример с одной группой

const express = require('express'); const app = express(); easyvk.callbackAPI.listen(< port: process.env.PORT || 8080, groupId: 1, secret: 'SecretCodeForGroupOrJustPassword', confirmCode: 'TestConfirmationCode', app >) 
const express = require('express'); const app = express(); easyvk.callbackAPI.listen(< port: process.env.PORT || 8080, groups: [ < groupId: 1, secret: 'SecretCodeForGroupOrJustPassword', confirmCode: 'TestConfirmationCode' >, < groupId: 2, secret: '2SecretCodeForGroupOrJustPassword', confirmCode: '2TestConfirmationCode' >, . ], app >) 

Пример с автоматической авторизацией

const express = require('express'); const app = express(); easyvk(< access_token: '' >).then(async (vk) => < console.log(vk.session.group_name) let connection = await vk.callbackAPI.listen(< port: process.env.PORT || 8080, path: '/webhook', app >) connection.on("message_new", console.log) >)

Метод возвращает объект CallbackAPIConnection

const express = require('express'); const app = express(); easyvk.callbackAPI.listen(< port: process.env.port || 8080, groupId: 1, confirmCode: 'TestConfirmationCode', app >).then((connection) => < connection.on("message_new", (msg) =>< console.log('Боту пришло сообщение!', msg); >) >); 

О событиях почитайте ниже

События Callback API

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

Кроме тех событий, что описаны в документации ВКонтакте, в Easy VK есть свои внутренние события, почитайте о них ниже

  • secretError — Возникает, когда сервер пытается отправить событие, но пароль в нем не совпадает с тем, что вы прописали в параметрах группы.
  • confirmationErrorr — Возникает, когда, сервер пытается отправить запрос подтверждения, но по каким-то причинам в EasyVK нет той группы, которую пытается запросить сервер
  • eventEmpty — Возникает, когда отправляется запрос, но в нем нету события, и вообще он пустой
 function errorHandler (< postData, description >) < console.log(`[$< description >]`, postData) > connection.on('eventEmpty', errorHandler) .on('confirmationError', errorHandler) .on('secretError', errorHandler) .on("message_new", console.log) .on("photo_new", console.log) 

Easy VK © 2020 — Кирилл Новак

CallBack API ВК На python

Как к боту вк на python подключить callback api. Например чтобы, если человек отписался от группы, то бот ему что-то напишет. Как такое реализовать на python?

Отслеживать
задан 28 апр 2019 в 7:50
123 11 11 бронзовых знаков
В чём конкретно у Вас проблема? Не знаете библиотеку? Не знаете, как получить событие? Что?
28 апр 2019 в 11:00
Не знаю как получить событие
28 апр 2019 в 11:21
Мне бы знать как подключить callback api vk к python файлу, и получать события
28 апр 2019 в 11:24

Callback API подключается к Вашему веб-серверу. То бишь для этого на Вашем веб-сервере должен быть соответствующий бекенд для получения и обработки событий от Callback API. Думаю, вам, скорее, нужен LongPoll API.

28 апр 2019 в 11:29

0

Сортировка: Сброс на вариант по умолчанию

Знаете кого-то, кто может ответить? Поделитесь ссылкой на этот вопрос по почте, через Твиттер или Facebook.

  • vkontakte-api
  • callback
  • python-3.7
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.10.27.43697

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

Как подключить callback api бот вконтакте

Посовещавшись, мы пришли к решению не делать подключение VK через предоставление прав владельцем сообщества (Вами) стороннему сервису для автоматической настройки. Таким образом Вы сами будете четко знать, где и какие права есть у BotManager и как, в случае необходимости, их отключить.

Чтобы подключить VK, внимательно выполните все пункты:

  1. Если у Вас еще нет сообщества в VK, создайте его.
  2. На странице сообщества перейдите в раздел «Управление» (пункт меню под фотографией сообщества)
  3. В разделе «Сообщения» убедитесь, что «Сообщения сообщества» включены
  4. В подразделе «Настройки для бота» включите «Возможности ботов» и, по желанию, активируйте кнопку «начать».
  5. В разделе «Настройки» –> «Работа с API» во вкладке «Ключи доступа» создайте ключ с правами доступа к сообщениям сообщества, а также к фотографиям и документам, если планируете отправлять в боте не только текстовые сообщения.
  6. Скопируйте созданный ключ и вставьте в системе BotManager в разделе «Настройки мессенджеров» для желаемого бота. Пока не нажимайте «Сохранить»
  7. Во вкладке «Callback API» в подвкладке «Настройки сервера» укажите следующий адрес сервера (не забудьте указать только что созданный ключ доступа):
    https://api.bot-manager.com/api/webhooks/vk/. Пока не нажимайте «Подтвердить»
  8. В этой же вкладе есть поле «Строка, которую должен вернуть сервер». Скопируйте указанный текст и вставьте в соответствующее поле в системе BotManager
  9. Во вкладке «Callback API» в подвкладке «Типы событий» установите лишь галочки напротив «Входящее сообщение», «Разрешение на получение» и «Запрет на получение»

  10. В системе BotManager установите «Бот включен» – «Да» и сохраните.
  11. В VK нажмите кнопку «Подтвердить»

Если у сервера появился статус «Подтвержден», значит все настроено верно и мессенджер подключен к Вашему боту.

Если возникла ошибка при подтверждении сервера, советуем перепроверить «строку, которую должен вернуть сервер», так как VK мог ее изменить к моменту подтверждения.

Самое сложное уже позади.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *