• Проблема с Push, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Да, go,mod и go.sum есть, в моде стоит версия 1.16, поставил на 1.15 и всё та же ошибка вылетает.
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, что бы поправить их код, мне нужно ещё учиться и учиться)
    Надеюсь здесь не запрещено задавать несколько вопросов в одной теме) Но всё же) Как я могу вывести какой либо параметр из дампа? Именно в этом случае:
    lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
    
          if obj.Message.Text == "test" {
            admins, err := vk.MessagesGetConversationMembers(api.Params{
              "peer_id": 2000000001,
            })
            if err != nil {
            log.Fatal(err)
            }
            spew.Dump(admins.Items)
    }})

    Суть кода - получить информацию о пользователях в беседе, суть которую я хочу получить - вывести из Items администраторов в беседе.
    Вот ответ от сервера при дампе:
    ([]struct { MemberID int "json:\"member_id\""; JoinDate int "json:\"join_date\""; InvitedBy int "json:\"invited_by\""; IsOwner object.BaseBoolInt "json:\"is_owner,omitempty\""; IsAdmin object.BaseBoolInt "json:\"is_admin,omitempty\""; CanKick object.BaseBoolInt "json:\"can_kick,omitempty\"" }) (len=16 cap=19) {
    (struct { MemberID int "json:\"member_id\""; JoinDate int "json:\"join_date\""; InvitedBy int "json:\"invited_by\""; IsOwner object.BaseBoolInt "json:\"is_owner,omitempty\""; IsAdmin object.BaseBoolInt "json:\"is_admin,omitempty\""; CanKick object.BaseBoolInt "json:\"can_kick,omitempty\"" }) {
    MemberID: (int) 380236476,
    JoinDate: (int) 1610476128,
    InvitedBy: (int) 380236476,
    IsOwner: (object.BaseBoolInt) true,
    IsAdmin: (object.BaseBoolInt) true,
    CanKick: (object.BaseBoolInt) false
    },
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, наконец-то оно начало работать)
    Не знаю почему эти билдеры не находили конвер айди сообщения, всё начало работать с простыми апи.
    lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
    
          if obj.Message.FromID != 380236476 {
          users, err := vk.MessagesDelete(api.Params{
            "conversation_message_ids": obj.Message.ConversationMessageID,
            "delete_for_all": 1,
            "peer_id": 2000000001,
          })
          if err != nil {
            log.Fatal(err)
          }
          log.Print(users)
        }
        })

    и возвращать при удалении он будет:
    2021/05/30 14:16:46 map[15545:1]
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, дамп response
    (api.MessagesGetByConversationMessageIDResponse) {
    Count: (int) 1,
    Items: ([]object.MessagesMessage) (len=1 cap=4) {
    (object.MessagesMessage) {
    AdminAuthorID: (int) 0,
    Action: (object.MessagesMessageAction) {
    ConversationMessageID: (int) 0,
    Email: (string) "",
    MemberID: (int) 0,
    Message: (string) "",
    Photo: (object.MessagesMessageActionPhoto) {
    Photo100: (string) "",
    Photo200: (string) "",
    Photo50: (string) ""
    },
    Text: (string) "",
    Type: (string) ""
    },
    Attachments: ([]object.MessagesMessageAttachment) {
    },
    ConversationMessageID: (int) 15534,
    Date: (int) 1622212093,
    FromID: (int) 380236476,
    FwdMessages: ([]object.MessagesMessage) {
    },
    ReplyMessage: (*object.MessagesMessage)(),
    Geo: (object.BaseMessageGeo) {
    Coordinates: (object.BaseGeoCoordinates) {
    Latitude: (float64) 0,
    Longitude: (float64) 0
    },
    Place: (object.BasePlace) {
    Address: (string) "",
    Checkins: (int) 0,
    City: (interface {}) ,
    Country: (interface {}) ,
    Created: (int) 0,
    ID: (int) 0,
    Icon: (string) "",
    Latitude: (float64) 0,
    Longitude: (float64) 0,
    Title: (string) "",
    Type: (string) "",
    IsDeleted: (object.BaseBoolInt) false,
    TotalCheckins: (int) 0,
    Updated: (int) 0,
    CategoryObject: (object.BaseCategoryObject) {
    ID: (int) 0,
    Title: (string) "",
    Icons: ([]object.BaseImage)
    }
    },
    Showmap: (int) 0,
    Type: (string) ""
    },
    PinnedAt: (int) 0,
    ID: (int) 0,
    Deleted: (object.BaseBoolInt) false,
    Important: (object.BaseBoolInt) false,
    IsHidden: (object.BaseBoolInt) false,
    IsCropped: (object.BaseBoolInt) false,
    Out: (object.BaseBoolInt) false,
    WasListened: (object.BaseBoolInt) false,
    Keyboard: (object.MessagesKeyboard) {
    AuthorID: (int) 0,
    Buttons: ([][]object.MessagesKeyboardButton) ,
    OneTime: (object.BaseBoolInt) false,
    Inline: (object.BaseBoolInt) false
    },
    Template: (object.MessagesTemplate) {
    Type: (string) "",
    Elements: ([]object.MessagesTemplateElement)
    },
    Payload: (string) "",
    PeerID: (int) 2000000001,
    RandomID: (int) 0,
    Ref: (string) "",
    RefSource: (string) "",
    Text: (string) (len=4) "test",
    UpdateTime: (int) 0,
    MembersCount: (int) 0,
    ExpireTTL: (int) 0
    }
    },
    ExtendedResponse: (object.ExtendedResponse) {
    Profiles: ([]object.UsersUser) ,
    Groups: ([]object.GroupsGroup)
    }
    }
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, item:
    {AdminAuthorID:0 Action:{ConversationMessageID:0 Email: MemberID:0 Message: Photo:{Photo100: Photo200: Photo50:} Text: Type:} Attachments:[] ConversationMessageID:15533 Date:1622211865 FromID:380236476 FwdMessages:[] ReplyMessage: Geo:{Coordinates:{Latitude:0 Longitude:0} Place:{Address: Checkins:0 City: Country: Created:0 ID:0 Icon: Latitude:0 Longitude:0 Title: Type: IsDeleted:false TotalCheckins:0 Updated:0 CategoryObject:{ID:0 Title: Icons:[]}} Showmap:0 Type:} PinnedAt:0 ID:0 Deleted:false Important:false IsHidden:false IsCropped:false Out:false WasListened:false Keyboard:{AuthorID:0 Buttons:[] OneTime:false Inline:false} Template:{Type: Elements:[]} Payload: PeerID:2000000001 RandomID:0 Ref: RefSource: Text:test UpdateTime:0 MembersCount:0 ExpireTTL:0}
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов,
    ./funcs_vk.go:101:12: no new variables on left side of :=

    Ругается на уже указанную выше переменную
    _, err := vk.MessagesDelete(delParamsBuilder.Params)
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов,
    lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
        b := params.NewMessagesGetByConversationMessageIDBuilder()
        if obj.Message.FromID != 380236476 {
        b.PeerID(2000000001)
        b.ConversationMessageIDs([]int{obj.Message.ConversationMessageID})
    
        _, err := vk.MessagesDelete(b.Params)
      //  log.Printf("%s, %s" , b.Params)
        if err != nil {
        log.Fatal(err)
    }
    }
    })

    2021/05/28 22:07:50 api: Access denied: message can not be deleted (3)
    exit status 1

    Правильно? Хотя если было бы правильно, то работало наверное)
    Вот что возвращает b.Params в этом случае
    map[conversation_message_ids:[%!s(int=15510)] peer_id:%!s(int=2000000001)], %!s(MISSING)
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов,
    2021/05/28 17:59:02 map[conversation_message_ids:[15382] delete_for_all:true]
    2021/05/28 17:59:02 api: One of the parameters specified was missing or invalid: conversation_message_ids requests peer_id parameter
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, к сожалению вылазит всё та же ошибка)
    2021/05/28 17:30:32 api: One of the parameters specified was missing or invalid: conversation_message_ids requests peer_id parameter
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, я пробовал ещё тогда, он говорил что один из параметров не указан)
    А именно :
    api: One of the parameters specified was missing or invalid: message_ids or conversation_message_ids is undefined
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, к сожалению такой вариант не сработал))
    ./main.go:56:10: use of package params without selector
    ./main.go:57:9: use of package params without selector
    ./main.go:59:30: use of package params without selector

    По поводу что мне нужно:"Ассистент в беседе который будет попросту удалять все сообщения кроме сообщений администратора в бесед, т.к. бот будет лишь для одной беседы, можно не париться над адаптивностью под все беседы, и использовать простой статичный if messageFromId = такой-то id"

    По поводу кода, мб попробовать в этом коде сделать функцию исходя из мануала автора?
    https://pkg.go.dev/github.com/SevereCloud/vksdk/v2...

    Примерно с такой структурой кода:
    1 - реагирование на новое сообщение
    2 - функция MessagesGetByConversationMessageID
    3 - уже сама функция удаления

    P.S. может быть в конце я бред написал, прошу строго не судить за это)
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, так, извиняюсь что пропал, жесткий полетел, вот что ответили в помощи вк:
    Здравствуйте, Данил!

    У таких сообщений нет глобальных id. Для бота нужно использовать поле conversation_message_id и метод https://vk.com/dev/messages.getByConversationMessageId, чтобы получить такое сообщение. В https://vk.com/dev/messages.delete соответственно тоже есть поле conversation_message_ids, нужно использовать именно его.

    С уважением,
    Команда ВКонтакте


    Буду пробовать работать с КонверсMessageID
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, ну я посмотрел похожие вопросы, и как я понял ( мб правильно, мб нет ) что бы получать все параметры из Message, нужно пройти какую-то модерацию или что-то типо того. Я задал вопрос в поддержку по этому поводу, как отпишут сообщу сюда.

    К слову я здесь должен указывать Message.ID или же ConversationMessageID ?
    lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
    var admins = 380236475
    var event = 2000000001
    
    if obj.Message.FromID != admins{
    if obj.Message.PeerID == event {
    b := params.NewMessagesDeleteBuilder()
    b.DeleteForAll(true)
    b.MessageIDs([]int{obj.Message.ID})
    
    _, err := vk.MessagesDelete(b.Params)
    if err != nil {
    log.Fatal(err)
    }
    }
    }
    })

    Т.к. когда я пишу Message.ID мне выводит ошибку и не запускается в принципе.
    2021/05/23 14:03:38 api: One of the parameters specified was missing or invalid: message_ids or conversation_message_ids is undefined

    Ну а когда ConversationMessageID, то он запускается, но при появлении сообщении с параматрами, выдаёт ошибку
    2021/05/23 14:05:58 api: Access denied: message can not be found
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, спасибо что показали эту библиотеку, я когда с php на go переходил думал здесь так же дампать можно будет через встроенную функцию)
    Вот что вернуло
    (object.MessagesMessage) {
    AdminAuthorID: (int) 0,
    Action: (object.MessagesMessageAction) {
    ConversationMessageID: (int) 0,
    Email: (string) "",
    MemberID: (int) 0,
    Message: (string) "",
    Photo: (object.MessagesMessageActionPhoto) {
    Photo100: (string) "",
    Photo200: (string) "",
    Photo50: (string) ""
    },
    Text: (string) "",
    Type: (string) ""
    },
    Attachments: ([]object.MessagesMessageAttachment) {
    },
    ConversationMessageID: (int) 15116,
    Date: (int) 1621701349,
    FromID: (int) 259189762,
    FwdMessages: ([]object.MessagesMessage) {
    },
    ReplyMessage: (*object.MessagesMessage)(),
    Geo: (object.BaseMessageGeo) {
    Coordinates: (object.BaseGeoCoordinates) {
    Latitude: (float64) 0,
    Longitude: (float64) 0
    },
    Place: (object.BasePlace) {
    Address: (string) "",
    Checkins: (int) 0,
    City: (interface {}) ,
    Country: (interface {}) ,
    Created: (int) 0,
    ID: (int) 0,
    Icon: (string) "",
    Latitude: (float64) 0,
    Longitude: (float64) 0,
    Title: (string) "",
    Type: (string) "",
    IsDeleted: (object.BaseBoolInt) false,
    TotalCheckins: (int) 0,
    Updated: (int) 0,
    CategoryObject: (object.BaseCategoryObject) {
    ID: (int) 0,
    Title: (string) "",
    Icons: ([]object.BaseImage)
    }
    },
    Showmap: (int) 0,
    Type: (string) ""
    },
    PinnedAt: (int) 0,
    ID: (int) 0,
    Deleted: (object.BaseBoolInt) false,
    Important: (object.BaseBoolInt) false,
    IsHidden: (object.BaseBoolInt) false,
    IsCropped: (object.BaseBoolInt) false,
    Out: (object.BaseBoolInt) false,
    WasListened: (object.BaseBoolInt) false,
    Keyboard: (object.MessagesKeyboard) {
    AuthorID: (int) 0,
    Buttons: ([][]object.MessagesKeyboardButton) ,
    OneTime: (object.BaseBoolInt) false,
    Inline: (object.BaseBoolInt) false
    },
    Template: (object.MessagesTemplate) {
    Type: (string) "",
    Elements: ([]object.MessagesTemplateElement)
    },
    Payload: (string) "",
    PeerID: (int) 2000000001,
    RandomID: (int) 0,
    Ref: (string) "",
    RefSource: (string) "",
    Text: (string) (len=26) "test",
    UpdateTime: (int) 0,
    MembersCount: (int) 0,
    ExpireTTL: (int) 0
    }
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов, Да, если выводить MessageID то о всегда пустой выходит, пишет в каждых сообщениях 0.
    Пробовал ещё сделать так:
    lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
    var admins = 380236476
    var event = 2000000001

    if obj.Message.FromID == admins{
    if obj.Message.PeerID == event {
    b := params.NewMessagesDeleteBuilder()
    b.DeleteForAll(true)
    b.MessageIDs([]int{obj.Message.ConversationMessageID})

    _, err := vk.MessagesDelete(b.Params)
    if err != nil {
    log.Fatal(err)
    }
    }
    }
    })

    Он запускался, но при появлении сообщении которое подходит под критерии в if, просто говорит что сообщение не найдено.
    2021/05/23 01:57:47 api: Access denied: message can not be found
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Евгений Мамонов,

    package main
    
    import (
    	"context"
    	"log"
    
    	"github.com/SevereCloud/vksdk/v2/api"
    	"github.com/SevereCloud/vksdk/v2/api/params"
    	"github.com/SevereCloud/vksdk/v2/longpoll-bot"
    	"github.com/SevereCloud/vksdk/v2/events"
    )
    
    func main() {
    	token := "token" 
    	vk := api.NewVK(token)
    
    	group, err := vk.GroupsGetByID(api.Params{})
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	lp, err := longpoll.NewLongPoll(vk, group[0].ID)
    	if err != nil {
    		log.Fatal(err)
    	}
    
    	lp.MessageNew(func(_ context.Context, obj events.MessageNewObject) {
    				var admins = 380236476
    				var event = 2000000001
    
    				if obj.Message.FromID == admins{
    				if obj.Message.PeerID == event {
    					b := params.NewMessagesDeleteBuilder()
    					b.DeleteForAll(true)
    					b.MessageIDs([]int{obj.Message.ID})
    
    
    					_, err := vk.MessagesDelete(b.Params)
    						if err != nil {
    							log.Fatal(err)
    						}
    				}
    				}
    	})
    
    
    
    
    
    
    
    	log.Println("Start longpoll")
    	if err := lp.Run(); err != nil {
    		log.Fatal(err)
    	}
    }
  • Golang vksdk, проблема с типом данных, как решить?

    re-incarnation
    @re-incarnation Автор вопроса
    Теперь пишет что один из параметров утерян либо не правильный)
    One of the parameters specified was missing or invalid: message_ids or conversation_message_ids is undefined
  • Vk longpoll api где ошибка?

    re-incarnation
    @re-incarnation Автор вопроса
    Да, спасибо большое, всё стало работать с изменением peer id.
    Когда я писал что либо в беседе, он выпилывал это в консоль, и выводил peer id беседы, хотя в документации вк по другому написан был способ получения, ну ладно, работает и то хорошо)
    В консоли он выводил
    2021/05/20 13:52:27 Start Long Poll
    2021/05/20 13:52:34 2000000003: d
    2021/05/20 13:52:37 2000000003: test

    2000000003 - peer_id беседы.