-
-
Notifications
You must be signed in to change notification settings - Fork 36
Home
Daniil Suvorov edited this page May 4, 2022
·
11 revisions
VK SDK for Golang готовая реализация основных функций VK API для языка Go.
Данная библиотека поддерживает версию API 5.131.
-
API
- Возвращает готовые структуры
- Реализовано 400+ методов
- Возможность изменять обработчик запросов
- Возможность изменять HTTP клиент
- Ограничитель запросов
- Загрузка файлов
-
Callback API
- Поддерживает все события
- Возвращает готовые структуры
-
Bots Long Poll API
- Поддерживает все события
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
-
User Long Poll API
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
-
Streaming API
- Возвращает готовые структуры
- Возможность изменять HTTP клиент
-
FOAF
- Работает с пользователями и группами
- Возвращает готовые структуры
-
VK Mini Apps
- Проверка параметров запуска
- Промежуточный http обработчик
-
Payments API
- Обрабатывает уведомления о платежах
-
Скиллы Маруси
- Готовые структуры и методы
- Обработка запросов от Маруси
# go mod init mymodulename
go get github.com/SevereCloud/vksdk/v2@latest
- Joe адаптер: https://github.com/tdakkota/joe-vk-adapter
- Logrus hook: https://github.com/SevereCloud/vkrus
package main
import (
"context"
"log"
"github.com/SevereCloud/vksdk/v2/api"
"github.com/SevereCloud/vksdk/v2/api/params"
"github.com/SevereCloud/vksdk/v2/longpoll-bot"
"github.com/SevereCloud/vksdk/v2/events"
)
func main() {
token := "<TOKEN>" // рекомендуется использовать os.Getenv("TOKEN")
vk := api.NewVK(token)
// Получаем информацию о группе
group, err := vk.GroupsGetByID(api.Params{})
if err != nil {
log.Fatal(err)
}
// Инициализируем longpoll
lp, err := longpoll.NewLongPoll(vk, group[0].ID)
if err != nil {
log.Fatal(err)
}
// Событие нового сообщения
lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
log.Printf("%d: %s", obj.Message.PeerID, obj.Message.Text)
if obj.Message.Text == "ping" {
b := params.NewMessagesSendBuilder()
b.Message("pong")
b.RandomID(0)
b.PeerID(obj.Message.PeerID)
_, err := vk.MessagesSend(b.Params)
if err != nil {
log.Fatal(err)
}
}
})
// Запускаем Bots Longpoll
log.Println("Start longpoll")
if err := lp.Run(); err != nil {
log.Fatal(err)
}
}