# EchoBot for Vk
Бот для социальной сети ВКонтакте, который при упоминании его в беседе (или при переписке в диалоге с ботом) цитирует присланный ему текст.
Пример взаимодействия с ботом:
* В личном диалоге

* В беседе

---
# Использование
## Создание и настройка сообщества в VK
1. Для начала у вас должно быть любое своё сообщество ВКонтакте — группа, встреча или публичная страница. Если сообщества нет, необходимо его создать;
2. Укажите, что вашему сообществу можно отправлять сообщения. Для этого перейдите в "*Управление сообществом*" → "*Сообщения*" и включите пункт "*Сообщения сообщества*";
3. Укажите, что в вашем сообществе будет работать бот. Перейдите в "*Управление сообществом*" → "*Сообщения*" → "*Настройки для бота*" и включите пункт "*Возможности ботов*" и поставьте галочку напротив "Разрешать добавлять сообщество в беседы";
4. На той же странице перейдите в "*Настройки*" → "*Работа с API*". На вкладке "*Ключи доступа*" нажмите кнопку "*Создать ключ*" и отметьте "Разрешить приложению доступ к сообщениям сообщества". Далее нажмите "*Создать*". Если вк попросит подтвердить действие, то подтвердите;
5. Перейдите на вкладку "*Callback API*". Нажмите "*Добавить сервер*". Можете придумать название или оставить его таким же. Выберите в "*Версия API*" - 5.80. В поле "*Секретный ключ*" придумайте секретный ключ и нажмите кнопку "*Сохранить*". Во вкладке "*Типы событий*" отметьте "*Входящее сообщение*".
### Получение ключей группы
*GROUP_ID* - это id вашей группы (вкладка "Callback API")

---
*BOT_CONFIRMATION_TOKEN* - это строка которую должен вернуть сервер (вкладка "Callback API")

---
*BOT_VK_ACCESS_TOKEN* - это секретный ключ доступа к API VK. (вкладка "Ключи доступа")

---
*BOT_VK_IDENTIFICATION_TOKEN* - это идентификатор, который присылает VK с каждым запросом (вкладка "Callback API")

## Запуск сервера
### Старт
Выберите один из следующих вариантов, в зависимости от ваших предпочтений (если не знаете, то первый предпочтительнее).
*Если у вас нет возможности использовать внешний 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`.

Нажмите кнопку "*Подтвердить*"
# Использование
Достаточно написать боту и он вам ответит. Также можно добавить бота в беседу, и он будет отвечать тогда, когда к нему обратятся.
# Пример
[EchoBotByVep](https://vk.com/im?sel=-203501388)