Вк-бот отвечает только один раз. Vk_api, python

import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType

random_id = vk_api.utils.get_random_id()

def write_msg(user_id, random_id, message):
    vk.method('messages.send', {'user_id': user_id, 'message': message, 'random_id': random_id})

# API-ключ созданный ранее
token = "b0d26aafd417***7527255b2aaee5"

# Авторизуемся как сообщество
vk = vk_api.VkApi(token=token)

# Работа с сообщениями
longpoll = VkLongPoll(vk)

# Основной цикл
for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW:
        print('Новое сообщение')
        request = event.text            
        if request == "привет":
            write_msg(event.user_id, random_id, "Хай")
        elif request == "пока":
            write_msg(event.user_id, random_id, "Пока((")
        else:
            write_msg(event.user_id, random_id, "Не поняла вашего ответа...")

После первого ответа, он ничего не делает. Как это исправить?


Ответы (2 шт):

Автор решения: Elusha

random_id должен быть разным для кажндого сообщения. Это нужно для того, чтобы ваш бот не отравлял одно и то же сообщение несколько раз. При отправке каждого сообщения вы должны генерировать новый random_id. Вам нужно в каждом вызове функции write_msg указывать random_id=vk_api.utils.get_random_id(), например:

write_msg(event.user_id, random_id=vk_api.utils.get_random_id(), "Хай")
→ Ссылка
Автор решения: Komedik

"random_id" : 0

И всё. У меня работает как надо

→ Ссылка