mirror of
https://github.com/42wim/matterbridge.git
synced 2024-11-27 06:29:31 +01:00
.. | ||
api | ||
events | ||
internal | ||
longpoll-bot | ||
object | ||
.gitignore | ||
.golangci.yml | ||
.markdownlint.yml | ||
CONTRIBUTING.md | ||
doc.go | ||
LICENSE | ||
README.md |
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}
}