如何在用户点击 Telegram Bot 后隐藏 ReplyKeyboardMarkup API

How to hide ReplyKeyboardMarkup after user click in Telegram Bot API

我正在使用 Node.js telegram-bot-api.

想法:

  1. 使用一个按钮显示自定义键盘 - "Share my phone number"。
  2. 当用户单击此按钮时,应发送联系人并且应从屏幕上删除按钮。

这是我现在正在使用的代码:

bot.sendMessage({
    text: 'Please give us your phone number',
    reply_markup: JSON.stringify({
        keyboard: [
            [{
                text: 'Share my phone number',
                request_contact: true
            }]
        ],
        resize_keyboard: true,
        one_time_keyboard: true
    })
});

问题:

如果我在这里做错了什么,请告诉我。谢谢

您应该使用 editMessageReplyMarkup 并在收到客户端用户的点击后用空字符串 ('') 更新该消息的 replyMarkup

更新 这适用于内联键盘。

找到了。

这是一个解决方案:

bot.sendMessage({
    chat_id: message.chat.id,
    text: 'Some text...',
    reply_markup: JSON.stringify({
        hide_keyboard: true
    })
});

hide_keyboardAPI 2.3 以来已重命名为 remove_keyboard

bot.sendMessage({
    chat_id: message.chat.id,
    text: 'Some text...',
    reply_markup: JSON.stringify({
        remove_keyboard: true
    })
});