如何用pyTelegramBotAPI实现Inline模式机器人?功能无响应求助
解决Telegram机器人Inline模式无响应问题
一、先确认核心权限配置
- 打开BotFather,给目标机器人发送
/setinline - 按提示设置Inline模式的占位提示文本(比如"输入内容触发结果")
- 收到BotFather的权限开启确认提示后再进行代码调试
二、检查依赖与基础配置
- 确保
API_TOKEN填写的是BotFather提供的完整、正确令牌 - 升级pyTelegramBotAPI到最新版本:
pip install --upgrade pytelegrambotapi
三、可运行的修正版代码
以下代码简化逻辑,确保所有Inline查询都能被响应:
import telebot from telebot import types # 替换为你的机器人API令牌 API_TOKEN = "你的机器人API_TOKEN" bot = telebot.TeleBot(API_TOKEN) # 响应所有Inline查询 @bot.inline_handler(lambda query: True) def handle_inline_queries(inline_query): try: # 构造两个基础文本结果 result1 = types.InlineQueryResultArticle( id="1", title="结果1", input_message_content=types.InputTextMessageContent("你选择了第一个结果") ) result2 = types.InlineQueryResultArticle( id="2", title="结果2", input_message_content=types.InputTextMessageContent("你选择了第二个结果") ) # 回复查询,cache_time设为0避免缓存旧结果 bot.answer_inline_query(inline_query.id, [result1, result2], cache_time=0) except Exception as e: print(f"运行错误:{e}") if __name__ == '__main__': # 启动长轮询,无需额外循环 bot.infinity_polling(timeout=10, long_polling_timeout=5)
四、测试与排查
- 运行代码后,在Telegram任意聊天框输入
@你的机器人用户名 任意内容,正常情况下会立即弹出结果列表 - 如果仍无响应:
- 查看控制台是否有报错信息
- 确认运行环境能正常访问Telegram API(国内服务器需配置代理)
- 检查机器人是否被Telegram限制功能
内容的提问来源于stack exchange,提问作者Mykola
相关产品推荐
相关产品推荐

