Задать вопрос
@kramerchik

Как мне использовать messages.delete в vk_api, если ошибка с ID сообщения?

Здравствуйте. У меня есть небольшой код на Python, который я написал на библиотеке vk_api. Это бот, который при обнаружении в сообщениях пользователей в беседе запрещенных слов удаляет это сообщение.
def run(self):
        for event in self.longpoll.listen():
            if event.type == VkBotEventType.MESSAGE_NEW:
                msg = event.object.message
                user_id = msg['from_id']
                user = utils.get_user_by_id(user_id)
                text = msg['text']
                peer_id =  msg['peer_id']
                conversation_message_ids = msg['conversation_message_id']
                fwd = self.vk_session.method('messages.getByConversationMessageId', {
                    'conversation_message_ids': msg['conversation_message_id'],
                    'peer_id': msg['peer_id']
                })['items'][0]

                if text == 'авито':
                    self.vk_session.method('messages.delete', {
                        'peer_id': msg['peer_id'] - 2000000000,
                        'cmids': conversation_message_ids , 
                        'delete_for_all': 1,
                    })

При попытке удалить сообщение пользователя у меня появляется ошибка связанная с ID сообщения "cmids". Я перепробовал все методы того, как можно объявить ID сообщения в этой функции, но, увы, всё безуспешно.

Например, в этом случае
'cmids': conversation_message_ids
у меня появляется ошибка [15] Access denied: message can not be found, хотя при создании токена у бота есть все разрешения, а в беседе у него есть админка.
Подскажите, как это пофиксить
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 1
Wispik
@Wispik
У тебя peer_id неправильный. Зачем ты из него вычитаешь?
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы