Получение номера телефона после отправки его в telegram

У меня есть функция для отправки номера телефона

@bot.message_handler(commands=['phonenumber'])
    def phone(message):
        keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
        button_phone = types.KeyboardButton(text="Отправить телефон",
                                            request_contact=True)
        keyboard.add(button_phone)
        bot.send_message(message.chat.id, 'Номер телефона',
                         reply_markup=keyboard)

Как мне его получить? В дальнейшем я буду с ним работать В telebot это можно сделать следующим образом

@bot.message_handler(content_types=['contact'])
def contact(message):
    if message.contact is not None:
        keyboard2 = types.ReplyKeyboardRemove()
        bot.send_message(message.chat.id, 'Вы успешно отправили свой номер', reply_markup=keyboard2)
        global phonenumber
        phonenumber= str(message.contact.phone_number)
        user_id = str(message.contact.user_id)

Как это сделать в aiogram? Пробую

@bot.message_handler(content_types=['contact'])
def contact(message):
    if message.contact is not None:
        keyboard2 = types.ReplyKeyboardRemove()
        bot.send_message(message.chat.id, 'Вы успешно отправили свой номер', reply_markup=keyboard2)
        global phonenumber
        phonenumber= str(message.contact.phone_number)
        user_id = str(message.contact.user_id)

Далее мне необходимо сделать следующее

try:
    user = users.objects.get(user_id=user_id)
    print(user)
except users.DoesNotExist:
    telegram = users
    telegram(user_id=user_id, phonenumber=phonenumber).save()

Но я получаю сообщение Task exception was never retrieved Если тоже самое делать через telebot, то данный код работает. В моём случае выдаётся данное сообщение но при этом в переменных содержится номер телефона и id пользователя


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

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

Попробуйте вот так.

@bot.message_handler(content_types=['contact'])
async def contact(message):
    if message.contact is not None:
        keyboard2 = types.ReplyKeyboardRemove()
        await bot.send_message(message.chat.id, 'Вы успешно отправили свой номер', reply_markup=keyboard2)
        global phonenumber
        phonenumber= str(message.contact.phone_number)
        user_id = str(message.contact.user_id)
→ Ссылка