0

How to implement a share profile button in aiogram like PremiumBot?

Im not sure if it is even possible because i didnt found any info about it in official documentation

Create share profile button like in PremiumBot (I attached photo)

enter image description here

Ewtizzz
  • 5
  • 2

1 Answers1

0

This feature was added in Bot API 6.5. You can create a button like this using KeyboardButtonRequestUser. This allows you to select user data according to the desired criteria and send it to the bot.

keyboard.py

def button():
    keyboard = types.ReplyKeyboardMarkup(resize_keyboard=True)
    request_button = types.KeyboardButton(text="Select user",
                                  request_user=types.KeyboardButtonRequestUser(
                                        request_id=1
                                    )
                                    )
    keyboard.add(request_button)
    return keyboard

app.py

import logging

from aiogram import Bot, Dispatcher, executor, types

from keyboard import button

API_TOKEN = 'YOUR BOT TOKEN'

logging.basicConfig(level=logging.INFO)

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


@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
    await message.reply("Hi!\nI'm Bot!", reply_markup=button())


@dp.message_handler(content_types=types.ContentType.USER_SHARED)
async def get_shared_user_data(message: types.Message):
    logging.info(message.user_shared.user_id)
    await message.answer(message.user_shared.user_id)


if __name__ == '__main__':
    executor.start_polling(dp, skip_updates=True)

You can get more information from this link