node.js - Telegram Bot 中的reply_markup( Node js)

标签 node.js api telegram

我正在尝试使用 Node js 编写一个 Telegram Bot ,并且我正在向用户发送键盘:

var keyboards = {  
    main_menu: {
        reply_markup: {
            keyboard: [
                [{text: "Cards"}, {text: "Progress"}],
                [{text: "Warning"}, {text: "Help"}]
            ]
        }
    }
};
bot.onText(/\/keyboard/, (msg) => {
    console.log(keyboards.main_menu);
    bot.sendMessage(msg.from.id, "Main menu", keyboards.main_menu);
    console.log(keyboards.main_menu);
});

这就是我在控制台上的内容:

{ reply_markup: { keyboard: [ [Array], [Array] ] } }
{ reply_markup:
   '{"keyboard":[[{"text":"Cards"},{"text":"Progress"}],[{"text":"Warning"}, {"text":"Help"}]]}',
  chat_id: 276984822,
  text: 'Main menu' }

所以我不知道为什么,但发送键盘 Telegram 后,将 chat_idtext 添加到我的键盘。我该怎么办?

最佳答案

我找到了解决方法 - 你应该像这样发送键盘:

bot.sendMessage(msg.from.id, "主菜单", {reply_markup: Keyboards.main_menu});

实际上下一个变体也会起作用:

bot.sendMessage(msg.from.id, "主菜单", {reply_markup: Keyboards.main_menu.reply_keyboard});

关于node.js - Telegram Bot 中的reply_markup( Node js),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54698646/

相关文章:

javascript - 需要使用 Jasmine 获取文件路径

javascript - 如何在 Angular 上静默 http 错误响应

ruby-on-rails - 如何使用 ActionCable 作为 API

node.js - 从特定时间开始每小时的 cron 表达式

javascript - Mongoose 难以理解如何正确使用 promises/async await

javascript - express.static() 不路由静态文件

javascript - 如何从返回 CSV 文件的 API 获取数据

python - 如何将python输出发送到 Telegram channel 而不是组和gmail电子邮件组

python - 如何使用 Telethon 获取转发消息的 channel /聊天/用户名?

javascript - 如何响应 Telegram Bot Webhook 请求?相同的请求重复出现