mirror of
				https://github.com/42wim/matterbridge.git
				synced 2025-11-04 15:57:32 +01:00 
			
		
		
		
	VK SDK for Golang
VK SDK for Golang ready implementation of the main VK API functions for Go.
Features
Version API 5.131.
- API
- 400+ methods
 - Ability to change the request handler
 - Ability to modify HTTP client
 - Request Limiter
 - Token pool
 
 - 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@latestUse by
- 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 := "<TOKEN>" // use os.Getenv("TOKEN")
    vk := api.NewVK(token)
    // get information about the group
    group, err := vk.GroupsGetByID(nil)
    if err != nil {
        log.Fatal(err)
    }
    // Initializing Long Poll
    lp, err := longpoll.NewLongPoll(vk, group[0].ID)
    if err != nil {
        log.Fatal(err)
    }
    // New message event
    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)
            }
        }
    })
    // Run Bots Long Poll
    log.Println("Start Long Poll")
    if err := lp.Run(); err != nil {
        log.Fatal(err)
    }
}