在该函数中,send_GetAccounts
用户向机器人发送消息,然后机器人根据情况响应用户的消息。如何确保机器人回复用户消息后,之前的所有消息都被删除?
例子:
BOT:在此处输入包含收到的令牌的链接
用户:(发送链接)
机器人:链接已成功接收
然后,在机器人发出最后一条消息之后,所有以前的消息都应该被删除。
@router.callback_query(StateFilter(None), F.data == 'addAcc')
async def send_GetAccounts(callback: CallbackQuery, state: FSMContext):
await state.set_state(Auth.token)
await callback.message.edit_text('Введите ссылку с токеном, полученный <a href=vkhost.github.io>ЗДЕСЬ</a>:',
reply_markup=kb.AddingAccount, parse_mode='html', disable_web_page_preview=True)
@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.answer(f'Аккаунт <b>{first_name}</b> <b>{last_name}</b> успшено добавлен!', reply_markup=kb.Countinue, parse_mode='html')
await state.clear()
await message.delete()
except vk_api.AuthError as e:
await message.answer(f'Произошла ошибка при авторизации под данному токену!')
else:
await message.answer('Произошла ошибка при добавление данных в базу данных!')
else:
await message.answer("Не правильный формат ссылки!\nПопробуйте еще раз")```
预保存
chat_id
和message_id
:/start
chat_id
还发送给我message_id
:/delete
我删除机器人消息:这是其中一种实现。您还可以通过以下方式进行操作:
或者: