Вк-бот отвечает только один раз. 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(), "Хай")