首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在单击一次后禁用Telegraf.js内联键盘

如何在单击一次后禁用Telegraf.js内联键盘
EN

Stack Overflow用户
提问于 2022-07-23 18:46:09
回答 1查看 515关注 0票数 2

我刚刚开始使用Telegraf制作带有节点的Telegram bot,并且机器人使用内联键盘让用户从给定的选项中进行选择。但是,在用户选择一个选项并获得响应之后,用户仍然可以单击其他选项并获得他们的响应。

代码语言:javascript
复制
ctx.reply("Do you want to order the product?", {
        parse_mode: "HTML",
        ...Markup.inlineKeyboard([
          Markup.button.callback("Order", "order"),
          Markup.button.callback("Cancel", "cancel"),
        ]),
      });

我试图使用bot.hears方法禁用它。

代码语言:javascript
复制
bot.hears("order", (ctx) => {
  "removed",
    {
      reply_markup: {
        remove_keyboard: true,
      },
    };
});

bot.hears("cancel", (ctx) => {
  "removed",
    {
      reply_markup: {
        remove_keyboard: true,
      },
    };
});

但是这些方法似乎并没有禁用/删除这些选项。那么,有什么方法可以在一次单击后禁用内联键盘吗?

EN

回答 1

Stack Overflow用户

发布于 2022-09-09 02:18:00

而不是bot.hears,您必须使用bot.action。试试下面的代码:

代码语言:javascript
复制
bot.action("order", (ctx) => {
    ctx.editMessageReplyMarkup();
    ctx.editMessageText("removed");
});

bot.action("cancel", (ctx) => {
    ctx.editMessageReplyMarkup();
    ctx.editMessageText("removed");
});

没有参数的bot.editMessageReplyMarkup函数将删除内联键盘。bot.editMessageText函数将用另一个文本编辑消息。

我希望这有帮助:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73093363

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档