Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/azzzak/vkbot
Бот для групп Вконтакте
https://github.com/azzzak/vkbot
bot golang vk vkontakte
Last synced: about 1 month ago
JSON representation
Бот для групп Вконтакте
- Host: GitHub
- URL: https://github.com/azzzak/vkbot
- Owner: azzzak
- License: mit
- Created: 2017-08-14T10:16:19.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-03-14T22:35:54.000Z (almost 6 years ago)
- Last Synced: 2024-06-20T12:03:33.719Z (6 months ago)
- Topics: bot, golang, vk, vkontakte
- Language: Go
- Homepage:
- Size: 5.86 KB
- Stars: 3
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# vkbot
## Установка и обновление
`go get -u github.com/azzzak/vkbot`
## Запуск
Для работы бота потребуется указать адрес для отправки callback-запросов на вкладке `Управление сообщестом > Работа с API > Callback API`. Для подтверждения нового сервера надо скопировать строку подтверждения и передать ее боту. После запуска бота нажмите кнопку `Подтвердить`, в случае успеха можно будет выбрать какие типы событий станут инициировать callback-запрос.Поддерживаются следующие типы событий:
* Входящие сообщения
* Исходящие сообщения
* Вступление в сообщество
* Выход из сообществаДля отправки сообщений необходимо создать ключи доступа на вкладке `Управление сообщестом > Работа с API > Ключи доступа`. Ключ указывается при запуске бота вместе с числовым идентификатором группы.
На вкладке `Управление сообщестом > Работа с API > Callback API` можно задать секретный ключ, который будет удостоверять подлинность данных. Если секретный ключ задан, его так же требуется указать при запуске бота.
## Работа за Nginx
Для работы за Nginx надо настроить обратный прокси. Функцию `ListenForWebhook` в этом случае следует запускать с параметром `"/"`.```
server {
...
location = /callback/path {
proxy_pass http://localhost:8101;
}
...
}```
## Пример
Простой бот, который повторяет присланные сообщения.
```go
package mainimport (
"fmt"
"net/http""github.com/azzzak/vkbot"
)func main() {
bot, err := vkbot.NewBotAPI("key", GroupID)
if err != nil {
fmt.Println(err)
}
bot.Confirmation = "123"
bot.Secret = "123"
updates := bot.ListenForWebhook("/callback/path")go http.ListenAndServe(":8101", nil)
for update := range updates {
switch update.Type {
case vkbot.IncomingMessage:
bot.Send(update.Payload.UserID, update.Payload.Body)
}
}
}```