Проблемы с VK api: при отправке сообщений боту в личку он не выдаёт ошибки

Вечер добрый, начинаю писать бота в вк. Никогда не сталкивался с ВК Апи и возникли проблемы.

import vk_api
from vk_api.utils import get_random_id
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType

vk_session = vk_api.VkApi(token = "Тут стоит токен, но сейчас я его убрал")

cmd_list = ['Ничего']

from vk_api.longpoll import VkLongPoll, VkEventType
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
for event in longpoll.listen():
    if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
        if event.text == 'Начать' or event.text == 'Привет'or event.text == 'привет'or event.text == 'начать':
            if event.from_user:
                vk.messages.send(
                    user_id=event.user_id,
                    message='И тебе не хворать! Если хочешь узнать, что я могу, напиши "Что ты умеешь?"'
        )
            elif event.from_chat:
                vk.messages.send(
                    chat_id=event.chat_id,
                    message='И тебе не хворать!'
        )
        if event.type == VkEventType.MESSAGE_NEW and event.to_me and event.text:
            if event.text == 'Что ты умеешь?':
                vk.messages.send(
                    user_id = event.user_id,
                    message = camd_list
        )

По итогу выдаёт ошибку:

   File "arc_bot.py", line 22, in <module>
    vk.messages.send(
  File "C:\Users\zolot\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 696, in __call__
    return self._vk.method(self._method, kwargs)
  File "C:\Users\zolot\AppData\Local\Programs\Python\Python38-32\lib\site-packages\vk_api\vk_api.py", line 656, in method
    raise error
vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: random_id is a required parameter

Кто сталкивался, может подсказать, что я именно делаю не так? В ВК включил ЛонгПолл.


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

Автор решения: Clark Devlin

В ошибке же все написано: vk_api.exceptions.ApiError: [100] One of the parameters specified was missing or invalid: random_id is a required parameter, то что у тебя не хватает обязательного параметра.

random_id - уникальный (в привязке к API_ID и ID отправителя) идентификатор, предназначенный для предотвращения повторной отправки одинакового сообщения. Сохраняется вместе с сообщением и доступен в истории сообщений.

Заданный random_id используется для проверки уникальности за всю историю сообщений, поэтому используйте большой диапазон (до int32). целое число, доступен начиная с версии 5.45

Ссылка на документацию - https://vk.com/dev/messages.send

→ Ссылка
Автор решения: gil9red

Нужно в запросы заполнять параметр random_id. Добавьте его во все vk.messages.send

Пример:

vk.messages.send(
    user_id=event.user_id,
    message='И тебе не хворать! Если хочешь узнать, что я могу, напиши "Что ты умеешь?"',
    random_id=get_random_id(),
)
→ Ссылка