用户单击Telegram Bot API后如何隐藏ReplyKeyboardMarkup
我正在使用Node.js telegram-bot-api 。
理念:
- 用一个button显示自定义键盘 – “分享我的电话号码”。
- 当用户点击这个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
。
更新这适用于内联键盘。