@Berry_Bav

Как заставить бота работать в беседе в вк?

Вот мой код. Он прекрасно отвечает на сообщения в лс, но не отвечает в беседе. Даже когда к нему обращаешься.

import vk_api, json
from vk_api.longpoll import VkLongPoll, VkEventType
 
vk_session = vk_api.VkApi(token = 'токен')
vk = vk_session.get_api()
longpol = VkLongPoll(vk_session)
 
def get_but(text, color):
    return {
                "action": {
                    "type": "text",
                    "payload": "{\"button\": \"" + "1" + "\"}",
                    "label": f"{text}"
                },
                "color": f"{color}"
            }
 
keyboard = {
    "one_time" : False,
    "buttons" : [
        [get_but('ДЗ', 'positive'), get_but('Пока', 'positive')],
    ]
}
keyboard = json.dumps(keyboard, ensure_ascii = False).encode('utf-8')
keyboard = str(keyboard.decode('utf-8'))
 
def sender(id, text):
    vk_session.method('messages.send', {'user_id' : id, 'message' : text, 'random_id' : 0, 'keyboard' : keyboard})
 
def main():
    for event in longpol.listen():
        if event.type == VkEventType.MESSAGE_NEW:
            if event.to_me:
                id = event.user_id
                msg = event.text.lower()

                if msg == 'привет':
                	sender(id, msg.title())
                if msg == 'дз':
                	fhandle = open('texto.txt')
                	sender(id, fhandle)
 
while True:
    main()
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 1
@HepkaPlay
JavaScript Junior.
Приветствую.
При нажатии на кнопки в бесед ВКонтакте бота упоминает, а после упоминания пишет текст кнопки.
Попробуйте сделать команду с упоминанием.
Команда должна выглядеть следующим образом: [club123123|@my_bot]
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы