@penyok

Vk_api как удалять сообщения?

Ради фана решил написать бота, которого можно добавить в беседу. его суть в том, что он удаляется сообщение определенного пользователя, а потом отправляет его с картинкой клоуна)
Копировать текст и отправлять его вместе с фото я научился, а вот как удалить последнее сообщение определенного пользователя я не знаю. Я попытался это реализовать, но ничего не получилось
import vk_api
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
from config import main_token

vk_session = vk_api.VkApi(token = main_token)
longpoll = VkBotLongPoll(vk_session, 216348252)

def sender(id, text, url_photo):
    vk_session.method('messages.send', {'chat_id' : id, 'message' : text, 'attachment': url_photo, 'random_id' : 0})

def deleter(id, all, cm):
    vk_session.method('messages.delete', {'chat_id': id, 'delete_for_all': all, 'cmids': cm, 'random_id': 0})

for event in longpoll.listen():
    if event.type == VkBotEventType.MESSAGE_NEW:
        if event.from_chat:

            id = event.chat_id
            msg = event.object.message['text'].lower()

            user_id = event.object.message['from_id']
            #print(id)
            if user_id == 284314870:
                sender(id, 'клоун говорит: ' + msg, 'photo-183216693_457272612')
            if user_id == 234870156:
                sender(id, 'клоун говорит: ' + msg, 'photo-183216693_457272612')
            if user_id == 150303672 and id ==3:
                sender(id, 'кочка говорит: ' + msg, 'photo-89416274_456239190')
            if user_id == 150303672 and id == 4:
                sender(id, 'клоун говорит: ' + msg, 'photo-183216693_457272612')
            if user_id == 163674999:
                sender(id, 'клоун говорит: ' + msg, 'photo-183216693_457272612')
            #if user_id == 137872130:
                #cmds = event.object.cmids
              #  sender(id, 'клоун говорит: ' + msg, 'photo-183216693_457272612')
               # deleter(id, 0, cmds)
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 1
@defriz
люблю js
ну так Вы в свою же функцию передаете во второй параметр 0, отвечающий за удаление сообщения для ВСЕХ в беседе.
groupID = 0 # положительный ID Вашей группы.

def deleter(id, all, cm):
    vk_session.method('messages.delete', {'chat_id': id, 'delete_for_all': all, 'cmids': cm, 'group_id': groupID})

deleter(id, 1, cmds)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы