# EchoBot for Vk Бот для социальной сети ВКонтакте, который при упоминании его в беседе (или при переписке в диалоге с ботом) цитирует присланный ему текст. Пример взаимодействия с ботом: * В личном диалоге ![](https://i.imgur.com/iFTkIQH.png) * В беседе ![](https://i.imgur.com/3dZggr5.png) --- # Использование ## Создание и настройка сообщества в VK 1. Для начала у вас должно быть любое своё сообщество ВКонтакте — группа, встреча или публичная страница. Если сообщества нет, необходимо его создать; 2. Укажите, что вашему сообществу можно отправлять сообщения. Для этого перейдите в "*Управление сообществом*" → "*Сообщения*" и включите пункт "*Сообщения сообщества*"; 3. Укажите, что в вашем сообществе будет работать бот. Перейдите в "*Управление сообществом*" → "*Сообщения*" → "*Настройки для бота*" и включите пункт "*Возможности ботов*" и поставьте галочку напротив "Разрешать добавлять сообщество в беседы"; 4. На той же странице перейдите в "*Настройки*" → "*Работа с API*". На вкладке "*Ключи доступа*" нажмите кнопку "*Создать ключ*" и отметьте "Разрешить приложению доступ к сообщениям сообщества". Далее нажмите "*Создать*". Если вк попросит подтвердить действие, то подтвердите; 5. Перейдите на вкладку "*Callback API*". Нажмите "*Добавить сервер*". Можете придумать название или оставить его таким же. Выберите в "*Версия API*" - 5.80. В поле "*Секретный ключ*" придумайте секретный ключ и нажмите кнопку "*Сохранить*". Во вкладке "*Типы событий*" отметьте "*Входящее сообщение*". ### Получение ключей группы *GROUP_ID* - это id вашей группы (вкладка "Callback API") ![](https://i.imgur.com/GphhmXZ.png) --- *BOT_CONFIRMATION_TOKEN* - это строка которую должен вернуть сервер (вкладка "Callback API") ![](https://i.imgur.com/E6QiA1c.png) --- *BOT_VK_ACCESS_TOKEN* - это секретный ключ доступа к API VK. (вкладка "Ключи доступа") ![](https://i.imgur.com/HVH392A.png) --- *BOT_VK_IDENTIFICATION_TOKEN* - это идентификатор, который присылает VK с каждым запросом (вкладка "Callback API") ![](https://i.imgur.com/sJ656Sf.png) ## Запуск сервера ### Старт Выберите один из следующих вариантов, в зависимости от ваших предпочтений (если не знаете, то первый предпочтительнее). *Если у вас нет возможности использовать внешний IP, то вы можете установить *[ngrok](https://ngrok.com/)* или аналогичное приложение.* --- <details> <summary><b><i>Docker</i></b></summary> *Для выполнения следующих шагов у вас должен быть установлен [Docker](https://docs.docker.com/engine/install/)* * Создайте файл *secret.list*. Он будет содержать ключи полученные в пункте **Получение ключей группы**; * Заполните файл следующей структурой указывая свои ключи: ``` GROUP_ID=123456789 BOT_CONFIRMATION_TOKEN=r84as6g5 BOT_VK_ACCESS_TOKEN=eb04a7e0eb95d... BOT_VK_IDENTIFICATION_TOKEN=4c35abffec... ``` * Выберите порт на котором будет запускаться приложение. Если у вас внешний IP, то это *80* порт. Если нет, то выберите любой свободный и используйте его для *[ngrok](https://ngrok.com/)*; * Выполнить команду в папке с *secret.list* подставив вместо *your_port* выбранный порт ```bash= docker run -d -p your_port:80/tcp --env-file ./secret.list veptechno/echobot:latest ``` </details> --- <details> <summary><b><i>Gradle</i></b></summary> *Для выполнения следующих шагов вам необходимо установить версию java не ниже 1.8.* 1. Склонируйте или скачайте [репозиторий](https://github.com/veptechno/just-ai); 2. В папке ./src/main/resources переименуйте secret-template.properties в secret.properties; 3. В файле secret.properties после `=` укажите соответствующие аргументы (как их получить указано выше); 4. В файле application.properties укажите server.port, в качестве внешнего порта вашей машины, на который будут приходить оповещения от VK (или порт, который будет использовать *[ngrok](https://ngrok.com/)*); 5. В консоли выполните `gradlew bootRun` </details> --- ## Подтверждение Введите адрес, где запущен бот (или то, что вывел ngrok) в поле "*Адрес*" и добавьте к нему `/echobot`. ![](https://i.imgur.com/n6sM9nd.png) Нажмите кнопку "*Подтвердить*" # Использование Достаточно написать боту и он вам ответит. Также можно добавить бота в беседу, и он будет отвечать тогда, когда к нему обратятся. # Пример [EchoBotByVep](https://vk.com/im?sel=-203501388)