mirror of
https://github.com/42wim/matterbridge.git
synced 2024-12-02 01:09:38 +01:00
4.5 KiB
4.5 KiB
VK SDK for Golang
VK SDK for Golang ready implementation of the main VK API functions for Go.
Features
Version API 5.131.
- API
- 500+ methods
- Ability to modify HTTP client
- Request Limiter
- Support zstd and MessagePack
- Token pool
- OAuth
- Callback
API
- Tracking tool for users activity in your VK communities
- Supports all events
- Auto setting callback
- Bots
Long Poll API
- Allows you to work with community events in real time
- Supports all events
- Ability to modify HTTP client
- User
Long Poll API
- Allows you to work with user events in real time
- Ability to modify HTTP client
- Streaming
API
- Receiving public data from VK by specified keywords
- Ability to modify HTTP client
- FOAF
- Machine-readable ontology describing persons
- Works with users and groups
- The only place to get page creation date
- Games
- Checking launch parameters
- Intermediate http handler
- VK Mini
Apps
- Checking launch parameters
- Intermediate http handler
- Payments
API
- Processes payment notifications
- Marusia
Skills
- For creating Marusia Skills
- Support SSML
Install
# go mod init mymodulename
go get github.com/SevereCloud/vksdk/v2@latest
Use by
- A simple chat bridge: https://github.com/42wim/matterbridge
- Joe adapter: https://github.com/tdakkota/joe-vk-adapter
- Logrus hook: https://github.com/SevereCloud/vkrus
Example
package main
import (
"context"
"log"
"github.com/SevereCloud/vksdk/v2/api"
"github.com/SevereCloud/vksdk/v2/api/params"
"github.com/SevereCloud/vksdk/v2/events"
"github.com/SevereCloud/vksdk/v2/longpoll-bot"
)
func main() {
:= "<TOKEN>" // use os.Getenv("TOKEN")
token := api.NewVK(token)
vk
// get information about the group
, err := vk.GroupsGetByID(nil)
groupif err != nil {
.Fatal(err)
log}
// Initializing Long Poll
, err := longpoll.NewLongPoll(vk, group[0].ID)
lpif err != nil {
.Fatal(err)
log}
// New message event
.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
lp.Printf("%d: %s", obj.Message.PeerID, obj.Message.Text)
log
if obj.Message.Text == "ping" {
:= params.NewMessagesSendBuilder()
b .Message("pong")
b.RandomID(0)
b.PeerID(obj.Message.PeerID)
b
, err := vk.MessagesSend(b.Params)
_if err != nil {
.Fatal(err)
log}
}
})
// Run Bots Long Poll
.Println("Start Long Poll")
logif err := lp.Run(); err != nil {
.Fatal(err)
log}
}