Как слушать нажатие кнопки Telegram bot?

Рейтинг: 1Ответов: 1Опубликовано: 18.02.2023

Подскажите как обработать нажатие кнопки, когда пользователь делится своими контактами? Мне нужно после того как он в боте отправляет свои контакты, выполнять определенные действия.

btn_phone = ReplyKeyboardMarkup(resize_keyboard=True).add(KeyboardButton('Отправить свой контакт ☎️', request_contact=True))

Ответы

▲ 0Принят

Вот Вам пример кода, где мы получаем контакт от пользователя и можем в дальнейшем использовать эти данные.

В данном примере мы выводим данные о пользователе с контакта в терминал: имя/номер телефона. При желании можно получать так же и фамилию и т. д. А так же изменить способ взаимодействия с данными.

# В данном примере используем pyTelegramBotAPI
import telebot

# Создаем бота с токеном
bot = telebot.TeleBot('{Ваш токен}')

# Создаем обработчик команды /start
@bot.message_handler(commands=['start'])
def handle_start(message):
    # создаем кнопку и клавиатуру для отправки контакта
    btn_phone = telebot.types.ReplyKeyboardMarkup(resize_keyboard=True)
    btn_phone.add(telebot.types.KeyboardButton(text='Отправить свой контакт ☎️', request_contact=True))
    # Отправляем приветственное сообщение с кнопкой
    bot.send_message(message.chat.id, 'Привет! Отправь мне свой контакт, чтобы я записал твои данные и продал их на китайском  теневом рынке :D', reply_markup=btn_phone)

# Создаем обработчик получения контакта
@bot.message_handler(content_types=['contact'])
def handle_contact(message):
    # Выводим данные контакта в терминал, но тут Вы уже сами решаете, как взаимодействовать с данными. Скорее всего Вам понадобитсья подключить базу данных, для того, чтобы сохранять их, но это не включено в данный вопрос :)
    print('Новый контакт:')
    print('Имя: ' + message.contact.first_name)
    print('Номер телефона: ' + message.contact.phone_number)

# Запускаем бота
bot.polling(none_stop=True)