вызвать команду в тексте бота телеграм (aiogram)

Есть команда в боте

@dp.message(Command("ask_tel"))

async def cmd_ask_tel(message: types.Message):

    builder = ReplyKeyboardBuilder()
    builder.row(
            types.KeyboardButton(text="Запросить контакт", request_contact=True)
    )


    await message.answer(
        "Отправьте контакт...",
        reply_markup=builder.as_markup(resize_keyboard=True),
    )

На одном из этапов бот выдает ответ:

@dp.callback_query(F.data == "usd_text")

async def send_random_value(callback: types.CallbackQuery):

    await callback.message.answer("Hello, world! ... Оставь контакт!")

Как сделать "Оставь контакт!" кликабельным, чтобы он вызвал команду "ask_tel"?
Спасибо заранее!


Ответы (1 шт):

Автор решения: Baggrisha

Если тебя правильно понял(по комментам, что ты оставил) можешь юзать Deep Linking

Юзаешь это чтобы получить Deep Linking

  @dp.message()
    async def deep_linking(msg: types.Message, command: CommandObject):
        link = await create_start_link(bot, '/ask_tel', encode=True)
        print(link)

Потом чтобы обработать юзаешь

@dp.message(CommandStart())
async def cmd_ask_tel_start(msg: types.Message, command: CommandObject):
    args = command.args
    if args == "ask_tel":
        builder = ReplyKeyboardMarkup(keyboard=[[
            KeyboardButton(text="Запросить контакт", request_contact=True)
        ]], resize_keyboard=True)

        await msg.answer(
            "Отправьте контакт...",
            reply_markup=builder,
        )
        await msg.answer("Hello, world! ... Оставь контакт!", reply_markup=builder)

И потом ловишь номер телефона

@dp.message(F.contact)
async def cmd_get_tel(msg: types.Message):
    print(msg.contact.phone_number)
→ Ссылка