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

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

理念:

  1. 用一个button显示自定义键盘 – “分享我的电话号码”。
  2. 当用户点击这个button时,应该发送联系人,并且应该从屏幕上移除button。

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

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 }) }); 

问题:

  • 当用户点击“分享我的电话号码”button,它共享他的联系人,但即使在那之后,button仍然可见。
  • 当我不使用request_contact标志时, one_time_keyboard可以正常工作(在button被使用后隐藏button),但是即使在这种情况下,它也只是隐藏了button,所以用户可以点击一个图标使其返回到屏幕上,这并不好。

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

find了。

这是一个解决scheme:

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

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

更新这适用于内联键盘。