Telebot中InlineKeyboardButton对应的Callback Handler无响应求助
问题修复:TeleBot内联按钮无响应的解决方法
核心问题是你搞混了两种键盘组件:你用普通回复键盘(ReplyKeyboardMarkup)来承载内联按钮(InlineKeyboardButton),这两者不兼容。普通回复键盘的按钮只会发送文本消息,根本触发不了回调查询处理器(callback_query_handler)。
修复方法很简单,把键盘类型换成内联专用的InlineKeyboardMarkup就行:
from telebot import types import requests import json token = '6230500274:AAEwvnh0WPFkjUbOp0K2iW5DiFyiKfQND9w' bot = telebot.TeleBot(token) @bot.message_handler(commands=['start']) def start(message): # 替换为内联键盘专用的Markup类 markup = types.InlineKeyboardMarkup(resize_keyboard=True) domain = types.InlineKeyboardButton('WHOIS - DOMAIN', callback_data='domain') ip = types.InlineKeyboardButton('WHOIS - IP', callback_data='ip') markup.row(domain, ip) bot.send_message(message.chat.id, 'Привет! Я бот который узнать много информации о доменах и ip', reply_markup=markup) @bot.callback_query_handler(func=lambda callback:True) def callback_message(callback): if callback.data == 'domain': bot.send_message(callback.message.chat.id, 'ээээ') bot.polling(none_stop=True)
修改后,点击"WHOIS - DOMAIN"按钮就能触发回调处理器,收到你设置的回复了。
内容的提问来源于stack exchange,提问作者Vladislav
相关产品推荐
相关产品推荐

