longpoll

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 17, 2019 License: MIT Imports: 9 Imported by: 0

README

Bots Long Poll API

Документация Bots Long Poll API

Подключение Bots Long Poll API

Чтобы использовать Bots Long Poll API, откройте раздел «Управление сообществом», на вкладке «Работа с API»→«Long Poll API» выберите «Включён».

Версия API

Данная библиотека поддерживает версию API 5.92.

Инициализация

Модуль можно использовать с ключом доступа пользователя, полученным в Standalone-приложении через Implicit Flow(требуются права доступа: groups) или с ключом доступа сообщества(требуются права доступа: manage).

В начале необходимо инициализировать api:

vk := api.Init("<TOKEN>")

А потом сам longpoll

lp, err := longpoll.Init(vk api.VK, groupID int)
// По умолчанию Wait = 25
// lp.Wait = 90 
// lp.Ts = "123"
HTTP client

В модуле реализована возможность изменять HTTP клиент - lp.Client

Пример прокси

dialer, _ := proxy.SOCKS5("tcp", "127.0.0.1:9050", nil, proxy.Direct)
httpTransport := &http.Transport{
	Dial:              dialer.Dial,
	// DisableKeepAlives: true,
}
httpTransport.Dial = dialer.Dial
lp.Client.Transport = httpTransport
Обработчик событий

Для каждого события существует отдельный обработчик, который передает функции object и groupID.

Пример для события message_new

lp.MessageNew(func(object object.MessageNewObject, groupID int) {
	...
})

Если вы хотите получать полный ответ от Long Poll(например для сохранения ts или специальной обработки failed), можно воспользоваться следующим обработчиком.

lp.FullResponse(func(resp object.LongpollBotResponse) {
	...
})

Полный список событий Вы найдёте в документации

Запуск и остановка
// Запуск
if err := lp.Run(); err != nil {
	log.Fatal(err)
}

// Безопасное завершение
// Ждет пока соединение закроется и события обработаются
lp.Shutdown()

// Закрыть соединение
// Требует lp.Client.Transport = &http.Transport{DisableKeepAlives: true}
lp.Client.CloseIdleConnections()

Пример

package main

import (
	"log"

	"github.com/SevereCloud/vksdk/5.92/api"

	longpoll "github.com/SevereCloud/vksdk/5.92/longpoll-bot"
	"github.com/SevereCloud/vksdk/5.92/object"
)

func main() {
	vk := api.Init("<TOKEN>")
	lp, err := longpoll.Init(vk, 12345678)
	if err != nil {
		panic(err)
	}

	lp.MessageNew(func(obj object.MessageNewObject, groupID int) {
		log.Print(obj.Text)
	})

	lp.Run()
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Longpoll

type Longpoll struct {
	GroupID int
	Server  string
	Key     string
	Ts      string
	Wait    int
	VK      *api.VK
	Client  *http.Client
	// contains filtered or unexported fields
}

Longpoll struct

func Init

func Init(vk *api.VK, groupID int) (lp Longpoll, err error)

Init Longpoll

func (*Longpoll) AudioNew

func (lp *Longpoll) AudioNew(f object.AudioNewFunc)

AudioNew handler

func (*Longpoll) BoardPostDelete

func (lp *Longpoll) BoardPostDelete(f object.BoardPostDeleteFunc)

BoardPostDelete handler

func (*Longpoll) BoardPostEdit

func (lp *Longpoll) BoardPostEdit(f object.BoardPostEditFunc)

BoardPostEdit handler

func (*Longpoll) BoardPostNew

func (lp *Longpoll) BoardPostNew(f object.BoardPostNewFunc)

BoardPostNew handler

func (*Longpoll) BoardPostRestore

func (lp *Longpoll) BoardPostRestore(f object.BoardPostRestoreFunc)

BoardPostRestore handler

func (*Longpoll) FullResponse

func (lp *Longpoll) FullResponse(f func(object.LongpollBotResponse))

FullResponse handler

func (*Longpoll) GroupChangePhoto

func (lp *Longpoll) GroupChangePhoto(f object.GroupChangePhotoFunc)

GroupChangePhoto handler

func (*Longpoll) GroupChangeSettings

func (lp *Longpoll) GroupChangeSettings(f object.GroupChangeSettingsFunc)

GroupChangeSettings handler

func (*Longpoll) GroupJoin

func (lp *Longpoll) GroupJoin(f object.GroupJoinFunc)

GroupJoin handler

func (*Longpoll) GroupLeave

func (lp *Longpoll) GroupLeave(f object.GroupLeaveFunc)

GroupLeave handler

func (*Longpoll) GroupOfficersEdit

func (lp *Longpoll) GroupOfficersEdit(f object.GroupOfficersEditFunc)

GroupOfficersEdit handler

func (*Longpoll) LeadFormsNew

func (lp *Longpoll) LeadFormsNew(f object.LeadFormsNewFunc)

LeadFormsNew handler

func (*Longpoll) MarketCommentDelete

func (lp *Longpoll) MarketCommentDelete(f object.MarketCommentDeleteFunc)

MarketCommentDelete handler

func (*Longpoll) MarketCommentEdit

func (lp *Longpoll) MarketCommentEdit(f object.MarketCommentEditFunc)

MarketCommentEdit handler

func (*Longpoll) MarketCommentNew

func (lp *Longpoll) MarketCommentNew(f object.MarketCommentNewFunc)

MarketCommentNew handler

func (*Longpoll) MarketCommentRestore

func (lp *Longpoll) MarketCommentRestore(f object.MarketCommentRestoreFunc)

MarketCommentRestore handler

func (*Longpoll) MessageAllow

func (lp *Longpoll) MessageAllow(f object.MessageAllowFunc)

MessageAllow handler

func (*Longpoll) MessageDeny

func (lp *Longpoll) MessageDeny(f object.MessageDenyFunc)

MessageDeny handler

func (*Longpoll) MessageEdit

func (lp *Longpoll) MessageEdit(f object.MessageEditFunc)

MessageEdit handler

func (*Longpoll) MessageNew

func (lp *Longpoll) MessageNew(f object.MessageNewFunc)

MessageNew handler

func (*Longpoll) MessageReply

func (lp *Longpoll) MessageReply(f object.MessageReplyFunc)

MessageReply handler

func (*Longpoll) MessageTypingState

func (lp *Longpoll) MessageTypingState(f object.MessageTypingStateFunc)

MessageTypingState handler

func (*Longpoll) PhotoCommentDelete

func (lp *Longpoll) PhotoCommentDelete(f object.PhotoCommentDeleteFunc)

PhotoCommentDelete handler

func (*Longpoll) PhotoCommentEdit

func (lp *Longpoll) PhotoCommentEdit(f object.PhotoCommentEditFunc)

PhotoCommentEdit handler

func (*Longpoll) PhotoCommentNew

func (lp *Longpoll) PhotoCommentNew(f object.PhotoCommentNewFunc)

PhotoCommentNew handler

func (*Longpoll) PhotoCommentRestore

func (lp *Longpoll) PhotoCommentRestore(f object.PhotoCommentRestoreFunc)

PhotoCommentRestore handler

func (*Longpoll) PhotoNew

func (lp *Longpoll) PhotoNew(f object.PhotoNewFunc)

PhotoNew handler

func (*Longpoll) PollVoteNew

func (lp *Longpoll) PollVoteNew(f object.PollVoteNewFunc)

PollVoteNew handler

func (*Longpoll) Run

func (lp *Longpoll) Run() error

Run handler

func (*Longpoll) Shutdown

func (lp *Longpoll) Shutdown()

Shutdown gracefully shuts down the longpoll without interrupting any active connections.

func (*Longpoll) UserBlock

func (lp *Longpoll) UserBlock(f object.UserBlockFunc)

UserBlock handler

func (*Longpoll) UserUnblock

func (lp *Longpoll) UserUnblock(f object.UserUnblockFunc)

UserUnblock handler

func (*Longpoll) VideoCommentDelete

func (lp *Longpoll) VideoCommentDelete(f object.VideoCommentDeleteFunc)

VideoCommentDelete handler

func (*Longpoll) VideoCommentEdit

func (lp *Longpoll) VideoCommentEdit(f object.VideoCommentEditFunc)

VideoCommentEdit handler

func (*Longpoll) VideoCommentNew

func (lp *Longpoll) VideoCommentNew(f object.VideoCommentNewFunc)

VideoCommentNew handler

func (*Longpoll) VideoCommentRestore

func (lp *Longpoll) VideoCommentRestore(f object.VideoCommentRestoreFunc)

VideoCommentRestore handler

func (*Longpoll) VideoNew

func (lp *Longpoll) VideoNew(f object.VideoNewFunc)

VideoNew handler

func (*Longpoll) VkpayTransaction

func (lp *Longpoll) VkpayTransaction(f object.VkpayTransactionFunc)

VkpayTransaction handler

func (*Longpoll) WallPostNew

func (lp *Longpoll) WallPostNew(f object.WallPostNewFunc)

WallPostNew handler

func (*Longpoll) WallReplyDelete

func (lp *Longpoll) WallReplyDelete(f object.WallReplyDeleteFunc)

WallReplyDelete handler

func (*Longpoll) WallReplyEdit

func (lp *Longpoll) WallReplyEdit(f object.WallReplyEditFunc)

WallReplyEdit handler

func (*Longpoll) WallReplyNew

func (lp *Longpoll) WallReplyNew(f object.WallReplyNewFunc)

WallReplyNew handler

func (*Longpoll) WallReplyRestore

func (lp *Longpoll) WallReplyRestore(f object.WallReplyRestoreFunc)

WallReplyRestore handler

func (*Longpoll) WallRepost

func (lp *Longpoll) WallRepost(f object.WallRepostFunc)

WallRepost handler

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL