SevereCloud / vksdk

Golang module for working with VK API
MIT License
192 stars 36 forks source link

Не работают некоторые методы в Long Poll #193

Closed ignavan39 closed 2 years ago

ignavan39 commented 2 years ago

подключаю сообщество, и мне приходят сообщения только с типом

lp.MessageNew(func(ctx context.Context, mno events.MessageNewObject) {
        fmt.Println(mno.Message.Text)
    })

Typing, Read, Edit, Delete - почему то у меня не доходят из вк

zemlyak-l commented 2 years ago

skill issue

n-ozerov commented 2 years ago

https://github.com/SevereCloud/vksdk/blob/e78f8fa8475e00d8305b43954ce4bd41c3b4a633/events/events.go#L90

Для каждого события свой колбек, а твой на новые сообщения и рассчитан.

ignavan39 commented 2 years ago

@n-ozerov не это понятно, у меня код +- вот так выглядит

lp, err := vklongpoll.NewLongPoll(v.bot, v.groupId)

    if err != nil {
        panic(err)
    }

    fmt.Println(lp.GroupID)

    lp.MessageNew(func(ctx context.Context, mno events.MessageNewObject) {
        fmt.Println(mno.Message.Text)
    })
    lp.MessageRead(func(ctx context.Context, mro events.MessageReadObject) {
        fmt.Println(mro.ReadMessageID)
    })
    lp.MessageEdit(func(ctx context.Context, meo events.MessageEditObject) {
        fmt.Println(meo.ReplyMessage.ConversationMessageID)
    })
    lp.MessageTypingState(func(ctx context.Context, mtso events.MessageTypingStateObject) {
        fmt.Println(mtso.ToID)
    })
    lp.Run()

но выводятся толкьо новые сообщения, тестил на 2х группах, в них настройки лонг поллинга включил с последней версией и нужные типы евентов выбрал

SevereCloud commented 2 years ago

Привет, Long Poll настраивается автоматически, то есть заходить в настройки лонгпола не требуется. Чтобы все работало, у ключа доступа(access token) сообщества должны быть минимум права доступа manage (управление сообществом).

image
ignavan39 commented 2 years ago

@SevereCloud Привет, это настроенно и работает

Снимок экрана от 2022-05-04 12-08-36

SevereCloud commented 2 years ago

Можешь прислать версию vksdk и golang

А еще lp.Run() может вернуть ошибку, которую хорошо бы проверить:

if err := lp.Run(); err != nil {
    log.Fatal(err)
}
ignavan39 commented 2 years ago

Снимок экрана от 2022-05-04 12-27-12 @SevereCloud

вот на скринах собственно, редактирование так не дошло

Снимок экрана от 2022-05-04 12-25-49 Снимок экрана от 2022-05-04 12-26-18

Снимок экрана от 2022-05-04 12-26-02

SevereCloud commented 2 years ago

github.com/SevereCloud/vksdk v1.10.0 // indirect

Можешь показать импорты


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)

    // Initializing Long Poll
    lp, err := longpoll.NewLongPollCommunity(vk)
    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)
            }
        }
    })

    lp.MessageRead(func(ctx context.Context, mro events.MessageReadObject) {
        log.Println("MessageRead")
    })
    lp.MessageEdit(func(ctx context.Context, meo events.MessageEditObject) {
        log.Println("MessageEdit")
    })
    lp.MessageTypingState(func(ctx context.Context, mtso events.MessageTypingStateObject) {
        log.Println("MessageTypingState")
    })

    // Run Bots Long Poll
    log.Println("Start Long Poll")
    if err := lp.Run(); err != nil {
        log.Fatal(err)
    }
}
image image
ignavan39 commented 2 years ago

полностью скопипастил твой код с импортами

github.com/SevereCloud/vksdk/v2 v2.14.0 h1:1lciJC4FWhSQIjjFb3NGyJI7x9sPKk/P6aAvR0ibh1o=
github.com/SevereCloud/vksdk/v2 v2.14.0/go.mod h1:J/iPooVfldjVADo47G5aNxkvlRWAsZnMHpri8sZmck4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/gorilla/schema v1.2.0/go.mod h1:kgLaKoK1FELgZqMAVxx/5cbj0kT+57qxUrAlIO2eleU=
github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
github.com/klauspost/compress v1.15.1/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk=
github.com/klauspost/compress v1.15.2 h1:3WH+AG7s2+T8o3nrM/8u2rdqUEcQhmga7smjrT41nAw=
github.com/klauspost/compress v1.15.2/go.mod h1:PhcZ0MbTNciWF3rruxRgKxI5NkcHHrHUDtV4Yw2GlzU=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
github.com/vmihailenco/msgpack/v5 v5.3.5/go.mod h1:7xyJ9e+0+9SaZT0Wt1RGleJXzli6Q/V5KbhBonMG9jc=
github.com/vmihailenco/tagparser/v2 v2.0.0 h1:y09buUbR+b5aycVFQs/g70pqKVZNBmxwAhO7/IwNM9g=
github.com/vmihailenco/tagparser/v2 v2.0.0/go.mod h1:Wri+At7QHww0WTrCBeu4J6bNtoV6mEfg5OIWRZA9qds=
golang.org/x/text v0.3.7 h1:olpwvP2KacW1ZWvsR7uQhoyTYvKAupfQrRGBFM352Gk=
golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
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() {

все равно

Снимок экрана от 2022-05-04 12-48-12 Снимок экрана от 2022-05-04 12-48-25

SevereCloud commented 2 years ago

События message_reply, message_edit, message_typing_state работают только в личных сообщениях(в беседах нет)

ignavan39 commented 2 years ago

уже увидел да, большое спасибо !