Ошибка, с которой вы сталкиваетесь, связана с тем, что вы пытаетесь удалить сообщение, отправленное в личные сообщения (рекурсивно) от вашего бота, что не разрешено в API ВКонтакте.
Чтобы исправить это, вы можете использовать метод, который удаляет только сообщения, отправленные от имени пользователя, а не от имени бота. Однако, если ваша цель — удалить сообщение, отправленное ботом, вам нужно учесть следующее:
1. **Сообщения бота** не могут быть удалены через `delete_for_all`, если они были отправлены в личные сообщения. В таком случае, вам нужно рассмотреть возможность удаления сообщения только от имени вашего аккаунта.
2. Чтобы успешно удалять свои сообщения, вам нужно использовать отдельный вызов для удаления. Попробуйте удалить сообщение с помощью `delete_for_all=False`.
Вот пример вашего кода с учетом вышеупомянутого:
```python
from vkbottle.bot import Bot, Message
from config import token_vk
from all_function import text
bot = Bot(token=token_vk)
bot.labeler.custom_rules['text'] = text
@bot.on.private_message(text='test')
async def test(message: Message):
# Сообщение удаляется, но только для текущего пользователя
await bot.api.messages.delete(message_ids=[message.id])
if __name__ == '__main__':
bot.run_forever()
```
### Важно:
- **Access denied**: Убедитесь, что у вашего бота есть необходимые права доступа. Если бот находится в группе, убедитесь, что он имеет доступ к удалению сообщений.
- Проверьте настройки вашей группы или приложения в ВКонтакте, чтобы гарантировать, что у вас достаточно прав для выполнения этой операции.
- Помните, что удалять сообщения можно только в пределах личной переписки и не для сообщений, пришедших уже в диалог, который не управляется вашим ботом.
Этот пример кода позволяет удалять сообщения, которые были отправлены от имени бота, но только для текущего сеанса общения (на уровне текущего пользователя), если у бота есть соответствующие права.