Telegram机器人点击Next按钮触发GrammyError 400错误求助
解决Telegram Bot交互菜单点击Next无响应的问题
问题原因
报错信息message is not modified已经明确指出:点击Next按钮时,你尝试调用editMessageText编辑消息,但传入的文本内容和按钮markup与当前消息完全一致,Telegram API禁止这种无意义的重复编辑操作。
解决方案
检查Next按钮的回调逻辑,确保点击后切换到不同的菜单内容和按钮配置:
- 定位代码中处理
next回调的部分(对应Next按钮的触发逻辑) - 确认回调函数内的
editMessageText参数是第二个菜单的文本和markup,而非当前菜单的内容
错误代码示例(导致无响应):
bot.callbackQuery('next', async (ctx) => { // 错误:重复使用当前菜单的内容和markup await ctx.editMessageText(firstMenu, { reply_markup: firstMenuMarkup }); });
修正后的代码:
bot.callbackQuery('next', async (ctx) => { // 正确:切换到第二个菜单的内容和markup await ctx.editMessageText(secondMenu, { reply_markup: secondMenuMarkup }); });
验证逻辑
确保每个按钮的回调都对应唯一的消息内容+markup组合,避免向Telegram API提交完全相同的编辑请求。
内容的提问来源于stack exchange,提问作者veet
相关产品推荐
相关产品推荐

