Ошибка в вк апи AttributeError: 'VkBotMessageEvent' object has no attribute 'user_id' (питон)

Непонятная ошибка с кодом бота ВК.

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
import urllib3
import requests
import socket

text='text'

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

token = "token"


vk = vk_api.VkApi(token=token)


longpoll = VkBotLongPoll(vk, 194192081)

try:

    for event in longpoll.listen():

        if event.type == VkBotEventType.MESSAGE_NEW:


            request = event.object['text']


            if request == "/text":
                write_msg(event.user_id, text, 0)

except (requests.exceptions.ReadTimeout, socket.timeout, urllib3.exceptions.ReadTimeoutError):
    time.sleep(1)

Ошибка

Traceback (most recent call last):
  File "c:/Users/что-то/Desktop/Untitled-1.py", line 84, in <module>
    vk.method('messages.send', {'user_id': event.user_id, 'message': text, 'random_id' : 0})
AttributeError: 'VkBotMessageEvent' object has no attribute 'user_id'

Почему-то с chat_id такой ошибки не происходит.

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
import time
import urllib3
import requests
import socket

text='text'

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

token = "token"


vk = vk_api.VkApi(token=token)


longpoll = VkBotLongPoll(vk, 194192081)

try:

    for event in longpoll.listen():

        if event.type == VkBotEventType.MESSAGE_NEW:


            request = event.object['text']


            if request == "/text":
                write_msg(event.chat_id, text, 0)

except (requests.exceptions.ReadTimeout, socket.timeout, urllib3.exceptions.ReadTimeoutError):
    time.sleep(1)

Объясните, пожалуйста, в чем проблема и как её решить.


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

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

Стэктрейс вам говорит, что в классе VkBotMessageEvent, который вы вызываете здесь

vk.method('messages.send', {'user_id': event.user_id, 'message': text, 'random_id' : 0})

Отсутствует атрибут user_id.

Ссылаясь на исходники vk_api, у данного класса есть атрибут from_user. Попробуйте использовать это или же передать атрибут без указания его названия. В конструкторе from_user - первый.

→ Ссылка