Python vk_api. Как поймать события выхода человека из беседы и кикнуть его?
Пользуюсь VkLongPoll из vk_api.longpool
Авторизация с помощью токена в сообществе
vk = vk_api.VkApi(token=token)
longpoll = VkLongPoll(vk)
def main_loop(self) -> None:
for event in self.longpoll.listen():
# Как то сделать проверку на выход из беседы
# И потом кикать через removeChatUser как я понял
Как поймать это событие и кикнуть того, кто вышел из беседы?
Ответы (1 шт):
Автор решения: nomnoms12
→ Ссылка
Для начала стоит сказать, что Вы используете неправильный модуль. Вам нужен vk_api.bot_longpoll.
Отследить выход человека из беседы можно, проверяя сообщение на наличие ключа action с типом chat_kick_user.
Пример (Python 3.8+):
from vk_api import VkApi
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
ACCESS_TOKEN = '' # Подставьте свой!
GROUP_ID = # Подставьте свой!
vk_session = VkApi(token=ACCESS_TOKEN)
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, GROUP_ID)
def main():
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and (action := event.obj['message'].get('action')):
if action['type'] == 'chat_kick_user':
vk.messages.removeChatUser(
chat_id=event.chat_id,
user_id=action['member_id'],
)
if __name__ == '__main__':
main()
Не забудьте, что боту необходимо выдать права администратора беседы:
