You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 16:09:59