简体   繁体   中英

Python Telegram Bot (Telebot)

I'm building a Telegram bot with the library https://github.com/eternnoir/pyTelegramBotAPI

I'm trying to make when I press a menu button, it sends a message to the user.

How could I do it?

import telebot
from telebot.types import InlineKeyboardMarkup, InlineKeyboardButton

TELEGRAM_TOKEN = '<TOKEN>'

bot = telebot.TeleBot(TELEGRAM_TOKEN)

def gen_markup():
    markup = InlineKeyboardMarkup()
    markup.row_width = 2
    markup.add(InlineKeyboardButton("Yes", callback_data="cb_yes"),
                               InlineKeyboardButton("No", callback_data="cb_no"))
    return markup

@bot.callback_query_handler(func=lambda call: True)
def callback_query(call):
    if call.data == "cb_yes":
        bot.answer_callback_query(call.id, "Answer is Yes")
    elif call.data == "cb_no":
        bot.answer_callback_query(call.id, "Answer is No")

@bot.message_handler(func=lambda message: True)
def message_handler(message):
    bot.send_message(message.chat.id, "Yes/no?", reply_markup=gen_markup())

bot.polling(none_stop=True)

You can use data of your call object as the user id( call.from_user.id ) of the sender to send a message:

if call.data == "cb_yes":
    bot.answer_callback_query(call.id, "Answer is Yes")
    bot.send_message(call.from_user.id,"Your answer was Yes!")
elif call.data == "cb_no":
    bot.answer_callback_query(call.id, "Answer is No")
    bot.send_message(call.from_user.id,"Your answer was No!")

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM