2017-09-28 132 views
1

下面的代碼請求位置和接觸來自用戶:Python的電報機器人:訪問聯繫人信息

def contact(bot, update): 
    dp = DjangoTelegramBot.dispatcher 

    con_keyboard = KeyboardButton(text="send_contact", request_contact=True) 
    loc_keyboard = KeyboardButton(text="send_location", request_location=True) 
    custom_keyboard = [[ con_keyboard ,loc_keyboard]] 
    reply_markup = ReplyKeyboardMarkup(custom_keyboard) 

    bot.sendMessage(update.message.chat_id, 
       text="Would you mind sharing your location and contact with me", 
       reply_markup=reply_markup) 

我的問題是我怎麼能獲得的電話號碼上send_contact按鈕,用戶點擊後?
PS:我使用python-telegram-botdjango-telegrambot

回答

1

我不知道有django-telegrambot。但如果我沒有錯,你的reply_markuppython-telegram-bot下的那個。當按下按鈕時,用戶的電話號碼將作爲Contact對象發送到您的機器人。您可以用MessageHandlerFilters.contact過濾器來捕捉它。

from telegram.ext import MessageHander, Filters 

def contact_callback(bot, update): 
    contact = update.effective_message.contact 
    phone = contact.phone_number 

dispatcher.add_handler(MessageHandler(Filters.contact, contact_callback))