ошибка vk api python 'NoneType' object has no attribute 'get'

введите сюда описание изображения

не могу понять в чем проблема. Помогите.

Пытался править на vent.object['text'].lower() не помогает нарушается логика.

import time
import io
import re
from pathlib import Path

import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from vk_api.utils import get_random_id
from pytils import numeral
import requests, yaml

from functions import get_time


BASE_DIR = Path(__file__).resolve().parent
CONFIG_PATH = BASE_DIR.joinpath("config.yaml")


with open(CONFIG_PATH) as ymlFile:
    config = yaml.load(ymlFile.read(), Loader=yaml.Loader)


class Utils(object):
    def __init__(self, upload):
        self.upload = upload

    def get_photo_by_url(self, url: str) -> str:
        r = requests.get(url)
        image = io.BytesIO(r.content)

        # Отправляем фото в беседу
        response = self.upload.photo_messages(photos=image)[0]
        attachment = "photo{}_{}".format(response["owner_id"], response["id"])
        return attachment


class User(object):
    """Функции для работы с пользователем"""
    def __init__(self, vk, upload):
        self.vk = vk
        self.upload = upload

    def get_username(self, user_id: int) -> str:
        user_info = self.vk.users.get(user_ids=user_id)[0]
        username = "{} {}".format(
            user_info["first_name"],
            user_info["last_name"]
        )
        return f"[id{user_id}|{username}]"

    def get_user_last_activity(self, user_id: int, sex: int) -> str:
        last_activity = self.vk.messages.getLastActivity(
            user_id=user_id
        )
        if last_activity["online"]:
            return "Сейчас онлайн\n"
        else:
            delta = time.time() - last_activity["time"]
            if sex == 1:
                return f"Была в сети {get_time(delta)} назад\n"
            elif sex == 2:
                return f"Был в сети {get_time(delta)} назад\n"
            else:
                pass  # Attack helicopter

    def get_user_profile_photo(self) -> str:
        photo_url = self.user_info["photo_max_orig"]
        if photo_url == "https://vk.com/images/camera_400.png":
            # У пользователя нет аватарки
            return ""
        else:
            attachment = utils.get_photo_by_url(photo_url)
            return attachment

    def get_user_status(self) -> str:
        """Возвращает статус пользователя"""
        status = self.user_info["status"]
        if status != "":
            return f"Статус: {status}\n"

        return ""

    def get_user_photos(self) -> str:
        if "photos" in self.user_info["counters"]:
            count = self.user_info["counters"]["photos"]
            if count != 0:
                return f"{count} фото\n"
        return ""

    def get_user_audios(self) -> str:
        if "audios" in self.user_info["counters"]:
            count = self.user_info["counters"]["audios"]
            if count != 0:
                return "{}\n".format(
                    numeral.get_plural(count, "аудиозапись, аудиозаписи, аудиозаписей")
                )
        return ""

    def get_user_videos(self) -> str:
        if "videos" in self.user_info["counters"]:
            count = self.user_info["counters"]["videos"]
            if count != 0:
                return f"{count} видео\n"

        return ""

    def get_user_friends(self) -> str:
        if "friends" in self.user_info["counters"]:
            count = self.user_info["counters"]["friends"]
            if count != 0:
                return "{}\n".format(
                    numeral.get_plural(count, "друг, друга, друзей")
                )

        return ""

    def get_user_followers(self) -> str:
        if "followers" in self.user_info["counters"]:
            count = self.user_info["counters"]["followers"]
            if count != 0:
                return "{}\n".format(
                    numeral.get_plural(count, "подписчик, подписчика, подписчиков")
                )

        return ""

    def get_user_groups(self) -> str:
        if "groups" in self.user_info["counters"]:
            count = self.user_info["counters"]["groups"]
            if count != 0:
                return "{}\n".format(
                    numeral.get_plural(count, "группа, группы, групп")
                )

        return ""

    def get_user_info(self, user_id: int) -> dict:
        self.user_info = self.vk.users.get(
            user_ids=user_id,
            fields="sex, status, counters, photo_max_orig"
        )[0]

        message = ""
        message += self.get_username(user_id) + "\n"
        message += f"id - {user_id}\n"
        message += self.get_user_last_activity(user_id, self.user_info['sex'])
        message += self.get_user_status()

        if self.user_info["is_closed"]:
            # Профиль пользователя закрыт
            message += "Профиль закрыт ❌\n"
        else:
            # Профиль пользователя открыт
            message += "Профиль открыт ✅\n"
            message += self.get_user_photos()
            message += self.get_user_audios()
            message += self.get_user_videos()
            message += self.get_user_friends()
            message += self.get_user_followers()
            message += self.get_user_groups()

        return {
            "message": message,
            "attachment": self.get_user_profile_photo()
        }


class Group(object):
    """Функции для работы с группами"""
    def __init__(self, vk, upload):
        self.vk = vk
        self.upload = upload

    def get_group_owner(self, group_id: int) -> str:
        try:
            owner_id = self.vk.groups.getMembers(
                group_id=group_id,
                filter="managers"
            )["items"][0]["id"]
            return f"Создатель - {user.get_username(owner_id)}\n"

        except vk_api.exceptions.ApiError:
            return ""

    def get_group_info(self, group_id: int) -> dict:
        """Отправляет сообщение с информацией о группе."""
        group_info = self.vk.groups.getById(group_id=group_id)[0]

        max_size = list(group_info)[-1]
        photo_url = group_info[max_size]

        message = ""
        message += f"{group_info['name']}\n"
        message += f"id - {group_info['id']}\n"
        message += self.get_group_owner(group_id)
        message += "Аватарка"

        return {
            "message": message,
            "attachment": utils.get_photo_by_url(photo_url)
        }


class Chat(object):
    def __init__(self, vk, upload, bot):
        self.vk = vk
        self.upload = upload
        self.bot = bot

    def get_chat_photo(self, chat_info: dict) -> str:
        """
        Вовращает фото беседы если оно у неё есть,
        иначе вовращает пустую строку.
        """
        if "photo" in chat_info:
            sizes = chat_info["photo"]
            max_size = list(sizes)[-2]
            photo_url = sizes[max_size]

            return utils.get_photo_by_url(photo_url)
        else:
            return ""

    def get_chat_info(self, chat_id: int) -> dict:
        """Отправляет сообщение с информацией о беседе."""

        chat_info = self.bot.messages.getConversationsById(
            peer_ids=2000000000 + chat_id,
            group_id=config["group"]["group_id"]
        )["items"][0]["chat_settings"]

        chat_name = chat_info["title"]
        members_count = chat_info["members_count"]
        owner_id = chat_info["owner_id"]

        message = ""
        message += "Название - {chat_name}\n"
        message += "{}\n".format(numeral.get_plural(members_count, "участник, участника, участников"))
        message += f"Создатель - {user.get_username(owner_id)}\n"
        message += "Аватарка"

        return {
            "message": message,
            "attachment": self.get_chat_photo(chat_info)
        }

    def is_admin(self, user_id: int, chat_id: int) -> bool:
        """Проверяем, является ли пользователь администратором беседы"""
        chat_members = self.bot.messages.getConversationMembers(
            peer_id=2000000000 + chat_id,
            group_id=config["group"]["group_id"],
        )["items"]

        is_admin = False

        for user in chat_members:
            if user["member_id"] == user_id and "is_admin" in user and not is_admin:
                is_admin = True
                break

        return is_admin

    def ban_user(self, from_id: int, user_id: int, chat_id: int):
        if from_id == user_id:
            self.bot.messages.send(
                chat_id=chat_id,
                message="Вы не можете забанить себя",
                random_id=get_random_id()
            )

        elif not self.is_admin(from_id,chat_id):
            self.bot.messages.send(
                chat_id=chat_id,
                message="У вас недостаточно прав для использования этой команды",
                random_id=get_random_id()
            )

        elif self.is_admin(from_id, chat_id):
            self.bot.messages.removeChatUser(
                chat_id=chat_id,
                user_id=user_id
            )

            self.bot.messages.send(
                chat_id=chat_id,
                message="Пользователь {} забанен".format(
                    user.get_username(user_id=user_id)
                ),
                random_id=get_random_id()
            )


class Bot(object):
    def __init__(self, bot, longpoll):
        self.bot = bot
        self.longpoll = longpoll

    def _get_help(self, chat_id: int):
        message = "Список команд\n" \
                  "!помощь\n" \
                  "!инфо беседа\n" \
                  "!инфо @(Имя пользователя) или id(id пользователя)\n" \
                  "!инфо @(Название группы) или @public(id группы)\n\n" \
                  "Доступно только администраторам\n" \
                  "!бан @(Имя пользователя)"

        self.bot.messages.send(
            chat_id=chat_id,
            message=message,
            random_id=get_random_id()
        )

    def check_message(self, received_message, chat_id):
        if re.match("!инфо", received_message):
            if received_message == "!инфо беседа":
                data = chat.get_chat_info(chat_id=chat_id)
                self.bot.messages.send(
                    chat_id=chat_id,
                    message=data["message"],
                    attachment=data["attachment"],
                    random_id=get_random_id()
                )
            elif re.match("!инфо id", received_message):
                user_id = int(received_message.split("id")[1].split("|")[0])
                data = user.get_user_info(user_id)
                self.bot.messages.send(
                    chat_id=chat_id,
                    message=data["message"],
                    attachment=data["attachment"],
                    random_id=get_random_id()
                )
            elif re.match("!инфо club", received_message):
                group_id = int(received_message.split("club")[1].split("|")[0])
                data = group.get_group_info(group_id)
                self.bot.messages.send(
                    chat_id=chat_id,
                    message=data["message"],
                    attachment=data["attachment"],
                    random_id=get_random_id()
                )
            else:
                self.bot.messages.send(
                    chat_id=chat_id,
                    message="Такой команды не существует",
                    random_id=get_random_id()
                )

        elif re.match("!бан id", received_message):
            user_id = int(received_message.split("id")[1].split("|")[0])
            chat.ban_user(
                from_id=self.from_id,
                user_id=user_id,
                chat_id=chat_id
            )
        elif received_message == "!помощь":
            self._get_help(chat_id)

    def listen(self):
        print("Начинаю мониторинг сообщений...")

        while True:
            try:
                """Отслеживаем каждое событие в беседе."""
                for event in self.longpoll.listen():
                    #if event.type == VkBotEventType.MESSAGE_NEW and event.from_chat and event.message.get("text") != "":
                    if event.type == VkBotEventType.MESSAGE_NEW:
                        received_message = event.object['text'].lower().replace("[", "").replace("]", "")
                        #received_message = event.object['text'].lower()
                        chat_id = event.chat_id
                        self.from_id = event.message.get("from_id")
                        self.check_message(received_message, chat_id)
            except (requests.exceptions.ReadTimeout, requests.exceptions.ConnectionError) as e:
                print(e)

                
if __name__ == "__main__":
    # Авторизируем бота
    authorize = vk_api.VkApi(token=config["group"]["group_token"])
    longpoll = VkBotLongPoll(authorize, 204428421)
   


    upload = vk_api.VkUpload(authorize)
    bot = authorize.get_api()

     #Авторизируем пользователя
    vk_session = vk_api.VkApi(
        token=config["user"]["user_token"]
        )
    vk = vk_session.get_api()

    vkbot = Bot(
        longpoll=longpoll,
        bot=bot
    )

    utils = Utils(
        upload=upload
    )

    user = User(
        vk=vk,
        upload=upload
    )

    group = Group(
        vk=vk,
        upload=upload
    )

    chat = Chat(
        vk=vk,
        upload=upload,
        bot=bot
    )

    vkbot.listen()  # Запускаем мониторинг бесед

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

Автор решения: Komedik
                """Отслеживаем каждое событие в беседе."""
                for event in self.longpoll.listen():
                    if event.type == VkBotEventType.MESSAGE_NEW:
                        received_message = event.text.lower()
                        chat_id = event.peer_id
                        user_id = event.user_id #Само решение проблемы
                        self.check_message(received_message, chat_id)

Слишком много сложности.

Здесь я попробовал решить Вашу проблему + немного упростил Ваш код

→ Ссылка