Как удалить сообщение в беседе с помощью VK API? Python
Народ, помогите с удалением сообщений на питоне через VK API
Мне нужно сделать как что бы если в беседе один из участников напишет запрещённое слово, то оно автоматически удалиться для всех
(Моя ошибка в консоли - session_api.messages.delete(delete_for_all=1, message_ids=text)
IndentationError: unindent does not match any outer indentation level)
Вот примерный код:
def sender(id, text):
vk_session.method('messages.send', {'user_id': id, 'message' : text, 'random_id' : 0, 'keyboard' : keyboard1})
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW:
if event.to_me:
if event.from_chat:
msg = event.text.lower()
id = event.user_id
if msg in ['запрещённое слово, Запрещённое слово'']:
session_api.messages.delete(delete_for_all=1, message_ids=text)
не правильно у тебя сделан message_ids - это ид самого сообщения в чате, а не его текст. data = vk_session.method("messages.getConversations", {"count": 1}) - где vk_session - вход в вк апи (vk_api.VkApi(token=tok))
Таким образом мы получим данные о последнем сообщении в этом чате (если сообщение в другом чате нас не перебило, т. к. мы получаем данные о последнем). Дале переходим из массива в словарь с данными - data_msg = dat[0]. тут будут данные на скрине. Вам нужен ид сообщения. Ищем - id. Получаем - message_id = data_msg["id"].
Теперь пользуемся вашим методом. session_api.messages.delete(delete_for_all=1, message_ids=message_id)
Весь код:
data = vk_session.method("messages.getConversations", {"count": 1})
data_msg = dat[0]
message_id = data_msg["id"]
session_api.messages.delete(delete_for_all=1, message_ids=message_id)
Кстати, оцените мою библиотек для вк апи - ссылка в комментариях будет. (оттуда скрин)
