Python vk api AttributeError: 'NoneType' object has no attribute 'startswith'
Вот в этом коде появляется ошибка
import vk_api
from vk_ api.bot _longpoll import VkBotLongPoll, VkBotEventType
# Ключ доступа сообщества ВК
token = ''
# ID группы ВК
group_id = id
# Создаем объект API
vk_session = vk_api.VkApi(token=token)
vk = vk_session.get_api()
# Функция для отправки сообщения
def send_message(peer_id, message):
vk.messages.send(peer_id=peer_id, random_id=vk_api.utils.get_random_id(), message=message)
# Функция для кика участника
def kick_user(group_id, user_id):
vk.messages.removeChatUser(chat_id=group_id, user_id=user_id)
# Функция для бана участника
def ban_user(group_id, user_id):
vk.messages.removeChatUser(chat_id=group_id, user_id=user_id, member_id=user_id)
# Обработка событий беседы
longpoll = VkBotLongPoll(vk_session, group_id)
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW:
if event.obj.text.startswith('/kick'):
# Получаем ID пользователя для кика
user_id = event.obj.from_id
kick_user(group_id, user_id)
send_message(event.obj.peer_id, f'Пользователь c ID {user_id} был кикнут из беседы.')
elif event.obj.text.startswith('.ban'):
user_id = event.obj.from_id
ban_user(group_id, user_id)
send_message(event.obj.peer_id, f'Пользователь c ID {user_id} был забанен в беседе.')
Потому-что вызываешь метод "startswith" с значением None.
Сначала нужно делать проверку:
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and event.obj.text: