使用Telegraf开发Telegram机器人时Inline按钮无法显示
解决Telegram机器人Inline键盘不显示问题
排查与修复方向:
确认Markup模块引入正确:必须从
telegraf中导入Markup对象,否则无法生成合法的键盘结构:const { Markup } = require('telegraf');移除不必要的解析模式:你的消息内容不含Markdown语法,保留
parse_mode: 'Markdown'可能引发解析冲突,建议直接移除该参数:ctx.reply("Теперь добавьте описание к фотографии", { reply_markup: keyboard });调试键盘结构:在发送前打印生成的键盘对象,确认其符合Telegram API格式要求:
console.log(JSON.stringify(keyboard));正常结构应包含
inline_keyboard字段,内嵌套按钮数组。检查对话权限:确认用户未屏蔽机器人的键盘功能,且机器人账号无API权限限制。
修改后示例代码
const { Markup } = require('telegraf'); function addDescription(ctx) { const keyboard = Markup.inlineKeyboard([ [Markup.button.callback('❌ Пропустить', 'noDescription')], ]); console.log('Generated keyboard:', JSON.stringify(keyboard)); ctx.reply("Теперь добавьте описание к фотографии", { reply_markup: keyboard }); }
内容的提问来源于stack exchange,提问作者Contaro
相关产品推荐
相关产品推荐

