acedece14

acedece14

Java dev, алкаш и лентяй
Пикабушник
Дата рождения: 14 ноября 1986
поставил 47 плюсов и 5 минусов
114 рейтинг 3 подписчика 2 подписки 1 пост 1 в горячем

Пишем на Java простого чат-бота для vk.com

Всем привет. Давайте сделаем простого бота для вк. Для начала пусть он мяукает в ответ, кидает в чат случайные картинки, отвечает на вопрос "кто?" и напоминает нам, что бичпакет уже успел завариться.

Нам понадобится ПК, аккаунт vk.com, начальные знания Java, установленный git и минут 5-10 времени.

Web-часть

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Идём в "Управление"

  • В настройках идём "Работа с API" - "Ключи доступа" - "Создать ключ" - выбираем все галочки - "Создать", подтверждаем на телефоне.

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Копируем ключ (он длинный, целиком в поле ввода не влазит)

  • Идём в "Сообщения"

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Включаем "Сообщения сообщества", жмём "Сохранить"

  • Идём в "Настройки для бота"

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

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

  • Добавляем бота в чат: на главной паблика/сообщества кликаем "Добавить в чат", выбираем чат/чаты и жмём "Пригласить"

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост
  • В управлении чата делаем бота админом, чтобы он мог видеть сообщения в чате без прямого упоминания.

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

На этом в браузере всё.

Java-часть

  • Клонируем проект в удобное место

git clone https://github.com/acedece14/vk-chat-bot

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост
  • Открываем Intellij IDEA, импортируем проект, ждём пока ide докачает всё нужное

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост
  • Видим такую структуру проекта

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Теперь про классы

BotCommands - тут лежат методы, которые вызываются у бота из чата

MyVkClient - тут прописана основная логика отправки данных на сервер

MyVkNewMessagesHandler - сюда приходят сообщения от пользователей чата

AppSettings - тут лежат настройки бота

Main - основной класс с точкой входа

Utils - тут мелкие утилитарные методы

Обязательно включаем annotation processing для lombok.

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Запускаем!

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Видим сообщение:
INFO: H:\vk-chat-bot\settings.json created, edit settings and restart app

Редактируем появившийся в директории с проектом файл settings.json

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост
Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

groupId можно получить посмотрев на адрес сообщества/паблика в адресе группы (только число)

  • Запускаем ещё раз, видим, что наш мини-тест работает и имя создателя Вконтакте нам от сервера пришло.

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост
  • Ну, теперь можно испытать несколько наших команд в чате с ботом.

Пишем на Java простого чат-бота для vk.com Java, Чат-бот, ВКонтакте, Первый пост, Длиннопост

Работает.

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

Показать полностью 15
Отличная работа, все прочитано!