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

新手上路,请多包涵

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

主意:

  1. 使用一个按钮显示自定义键盘 - “分享我的电话号码”。
  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
    })
});

问题:

  • 当用户点击“分享我的电话号码”按钮时,它会分享他的联系人,但即使在那之后按钮也是可见的。
  • 当我不使用 request_contact 标志时, one_time_keyboard 工作正常(在使用后隐藏按钮),但即使在这种情况下它也只是隐藏按钮,所以用户可以点击一个图标来把它带回屏幕,这一点都不好。

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

原文由 Nazar 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 787
2 个回答

找到了。

这是一个解决方案:

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

原文由 Nazar 发布,翻译遵循 CC BY-SA 3.0 许可协议

hide_keyboard --- 自 API 2.3 起已重命名为 remove_keyboard

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

原文由 Saman Mohamadi 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题