开发Telegram机器人(TeleBot)遇TypeError:缺少必填参数'message'
修复TeleBot代码的TypeError问题
问题原因
你的代码存在两个关键错误:
- 消息处理函数参数错误:TeleBot的命令回调函数只会传入一个
message对象作为参数,你定义了send_photo和message两个参数,导致参数不匹配触发TypeError。 send_message语法错误:message.chat.id'Hallo'之间缺少逗号,属于Python语法错误。
修复后的代码
@bot.message_handler(commands=['testes']) def testes(message): # 使用with语句安全打开文件,自动处理关闭操作 with open('qr75.jpg', 'rb') as qr75: bot.send_photo(message.chat.id, qr75) # 修复逗号缺失的问题,正确分隔函数参数 bot.send_message(message.chat.id, 'Hallo')
关键修改说明
- 函数参数仅保留
message:这是TeleBot回调函数的标准参数,包含当前聊天的所有上下文信息(比如聊天ID、发送者信息等)。 - 用
with语句管理文件:避免忘记关闭文件导致的资源占用问题,是Python处理文件的最佳实践。 - 补全
send_message的逗号:确保函数参数正确分隔,符合Python语法规范。
内容的提问来源于stack exchange,提问作者Dede Andrii
相关产品推荐
相关产品推荐

