Задать вопрос
nmkru
@nmkru
beginner python programmer

Как в aiogram по нажатию кнопки сразу открывать профиль пользователя?

Скажите пожалуйста, какой метод использовать в библиотеке aiogram, что бы реализовать функции Inline кнопки по нажатию которой сразу появляется профиль пользователя. Пока удалось только получить ответ от бота после нажатия на кнопку в виде сообщения с ссылкой на профиль пользователя, а надо чтобы профиль сразу открывался после нажатия. Кто знает, как реализовать подскажите?

@dp.callback_query_handler(lambda c: c.data in ['watch_profile'])
async def get_profile_user(callback: types.CallbackQuery):
	user_id = callback.from_user.id
	user_exmpl = int(user_id_date[user_id]['ID'])
	await bot.delete_message(chat_id=user_id,
	                         message_id=callback.message.message_id)  
	
	await bot.send_message(chat_id=user_id, text=f"Профиль [пользователя](tg://user?id={user_exmpl})",
	                     parse_mode=types.ParseMode.MARKDOWN_V2)
  • Вопрос задан
  • 322 просмотра
Подписаться Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 1
@shlopa
Привет не уверен но попробуй так

from aiogram import Bot, types
from aiogram.dispatcher import Dispatcher
from aiogram.utils import markdown

API_TOKEN = 'YOUR_API_TOKEN'

bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)

@dp.inline_handler(lambda query: query.query == 'watch_profile')
async def inline_watch_profile(query: types.InlineQuery):
    user_id = query.from_user.id
    user_exmpl = int(user_id_date[user_id]['ID'])  
    profile_link = f"tg://user?id={user_exmpl}"
    input_message_content = types.InputTextMessageContent(message_text=markdown.text(f"Профиль [пользователя]({profile_link})"),
                                                          parse_mode=types.ParseMode.MARKDOWN_V2)
    inline_result = types.InlineQueryResultArticle(
        id='1',
        title='Просмотреть профиль',
        input_message_content=input_message_content,
        url=profile_link,
        hide_url=True
    )
    await bot.answer_inline_query(query.id, results=[inline_result], cache_time=0)

if __name__ == '__main__':
    from aiogram import executor
    executor.start_polling(dp)
Ответ написан
Ваш ответ на вопрос

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

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