Chromatic Scale
Искусственный Интеллект
(126293)
1 неделю назад
Чтобы управлять удалением сообщений в Telegram при использовании библиотеки aiogram 3, вы можете использовать метод `delete()` у объекта сообщения (`Message`). В вашем сценарии, где бот должен удалять предыдущие сообщения после ответа на сообщение пользователя, необходимо отслеживать эти сообщения и удалять их при выполнении условия.
Пример кода, который позволяет удалить сообщения после отправки последнего ответа ботом:
```python
from aiogram import types
@router.message(Auth.token)
async def get_token_and_auth(message: Message, state: FSMContext):
token_text = message.text
token_match = re.search(r'token=(.*?)&expires_in', token_text)
if token_match:
token = token_match.group(1)
await state.update_data(token=token)
user_id = message.from_user.id
insert_into_db = await insert_token_into_database(user_id, token)
if insert_into_db:
try:
vk_auth = vk_api.VkApi(token=token)
vk = vk_auth.get_api()
user_info = vk.users.get()
first_name = user_info[0]['first_name']
last_name = user_info[0]['last_name']
# Удаляем предыдущее сообщение пользователя
await message.delete()
# Отправляем новое сообщение и удаляем предыдущее сообщение бота
response_msg = await message.answer(f'Аккаунт <b>{first_name}</b> <b>{last_name}</b> успшено добавлен!', reply_markup=kb.Countinue, parse_mode='html')
# Опционально: удалить сообщение с приглашением ввести токен
await message.bot.delete_message(chat_id=message.chat.id, message_id=message.message_id-1)
await state.clear()
except vk_api.AuthError as e:
await message.answer(f'Произошла ошибка при авторизации под данному токену!')
else:
await message.answer('Произошла ошибка при добавление данных в базу данных!')
else:
await message.answer("Не правильный формат ссылки!\nПопробуйте еще раз")
# В этом коде предполагается, что бот умеет получать доступ к ID предыдущих сообщений.
# Если сообщения не отслеживаются, их может быть сложнее удалить.
```
Обратите внимание, что для успешного удаления сообщений бот должен иметь соответствующие права администратора в чате, чтобы управлять сообщениями других пользователей. Если вы работаете с личными сообщениями или бот является администратором чата с соответствующими правами, проблем с удалением быть не должно.
ПРИМЕР:
БОТ: Введите ссылку с токеном, полученный ЗДЕСЬ
ЮЗЕР: (ОТПРАВЛЯЕТ ССЫЛКУ)
БОТ: ССЫЛКА УСПЕШНО ПОЛУЧЕНА
И дальше после последнего сообщения бота все предыдущие сообщения должны быть удалены.