Бот выходит сам при кике пользователя
import vk_api
import json
from vk_api.longpoll import VkLongPoll, VkEventType
import time
import random
token = "tok"
vk = vk_api.VkApi(token=token)
longpoll = VkLongPoll(vk)
def kick_user(user_id):
vk.method("messages.removeChatUser",{'chat_id' : 59, 'peer_id' : 2000000000 + 59,'user_id' : id,'member_id' : id})
# if user_id == admin_id and mess_user = 'kick':
# Основной цикл
for event in longpoll.listen():
# Если пришло новое сообщение
if event.type == VkEventType.MESSAGE_NEW:
# Если оно имеет метку для меня( то есть бота)
if event.to_me:
# Сообщение от пользователя
request = event.text
if event.from_chat:
msg = event.text.lower()
id = event.user_id
# Каменная логика ответа
if request == 'Привет':
kick_user(event.user_id)
Всё работает отлично. Но бот когда кикает пользователя который написал "привет", так же выходит с беседы. Почему?

Ответы (2 шт):
Автор решения: mazzz3r
→ Ссылка
Для того, чтобы бот не кикал самого себя, достаточно добавить простую проверку:
import vk_api
import json
from vk_api.longpoll import VkLongPoll, VkEventType
import time
import random
bot_id = 123122143 # айди вашего бота
token = "tok"
vk = vk_api.VkApi(token=token)
longpoll = VkLongPoll(vk)
def kick_user(user_id):
vk.method("messages.removeChatUser",{'chat_id' : 59, 'peer_id' : 2000000000 + 59,'user_id' : id,'member_id' : id})
# if user_id == admin_id and mess_user = 'kick':
# Основной цикл
for event in longpoll.listen():
# Если пришло новое сообщение
if event.type == VkEventType.MESSAGE_NEW:
# Если оно имеет метку для меня( то есть бота)
if event.to_me:
# Сообщение от пользователя
request = event.text
if event.from_chat:
msg = event.text.lower()
user_id = event.user_id
# Каменная логика ответа
if request == 'Привет' and user_id != bot_id:
kick_user(event.user_id)
Автор решения: lintinov
→ Ссылка
Исправил, но вылезла другая ошибка(её уже решил). Если написать user_id = event.user_id он не будет видеть какой ид надо кикнуть if request == 'Привет' and user_id != bot_id:
По этому в первом и втором надо было заметить на просто id, без user id = event.user_id if request == 'Привет' and id != bot_id: И работает отлично, спасибо большое