@dimonrzhev

Как сделать, чтобы при нажатии на дату, человек делился контактом с ботом?

как сделать так, чтобы при нажатии на дату в календаре, человек делился контактом С ботом и мне в чат от бота приходило письмо с контактами этого пользователя?

import telebot
from telebot import types
from telebot_calendar import Calendar, CallbackData, RUSSIAN_LANGUAGE
import datetime

bot = telebot.TeleBot(token)
calendar = Calendar(language=RUSSIAN_LANGUAGE)
calendar_1 = CallbackData('calendar_1', 'action', 'year', 'month', 'day')
now = datetime.datetime.now()

@bot.message_handler(commands=['start'])
def start(message):
    keyboard = types.ReplyKeyboardMarkup(True)
    button1 = types.KeyboardButton('ЗАПИСЬ НА СЪЕМКУ')
    keyboard.add(button1)
    bot.send_message(message.chat.id, 'Добро пожаловать, ' + message.from_user.first_name + '!', reply_markup=keyboard)

@bot.message_handler(content_types=['text'])
def call(message):
    #высвечиваем календарь при нажатии на кнопку ЗАПИСЬ НА СЪЕМКУ
    if message.text == 'ЗАПИСЬ НА СЪЕМКУ':
        bot.send_message(message.chat.id, 'Выберите дату', reply_markup=calendar.create_calendar(
            name=calendar_1.prefix,
            year=now.year,
            month=now.month)
            )

@bot.callback_query_handler(func=lambda call: call.data.startswith(calendar_1.prefix))
def callback_inline(call: types.CallbackQuery):
    name, action, year, month, day = call.data.split(calendar_1.sep)
    date = calendar.calendar_query_handler(bot=bot, call=call, name=name, action=action, year=year, month=month, day=day)

    if action == 'DAY':
        bot.send_message(chat_id=call.from_user.id, text=f'Вы выбрали {date.strftime("%d.%m.%Y")}', reply_markup=types.ReplyKeyboardRemove())

    elif action == 'CANCEL':
        bot.send_message(chat_id=call.from_user.id, text='Отмена', reply_markup=types.ReplyKeyboardRemove())

в каком месте для кнопки прописать request_contact=True?
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Отправить пользователю replykeyboard, передать в кнопку параметр request_contact=True:
types.KeyboardButton(request_contact=True)

Ну и поймать сообщение с контактом
@bot.message_handler(content_types=['contact'])

А там уже доставать нужные поля
https://core.telegram.org/bots/api#contact
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы