如何在Telegram Bot API中隐藏用户点击后的ReplyKeyboardMarkup
How to hide ReplyKeyboardMarkup after user click in Telegram Bot API
我使用的是Node.js电报机器人api。
理念:
- 显示带有一个按钮的自定义键盘-"共享我的电话号码"
- 当用户单击此按钮时,应发送联系人,并将该按钮从屏幕上删除
这是我现在使用的一个代码:
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
工作正常(使用后隐藏按钮),但即使在这种情况下,它也只是隐藏按钮,所以用户可以单击图标将其带回屏幕,这一点都不好
如果我在这里做错了什么,请告诉我。感谢
找到了。
这里有一个解决方案:
bot.sendMessage({
chat_id: message.chat.id,
text: 'Some text...',
reply_markup: JSON.stringify({
hide_keyboard: true
})
});
hide_keyboard
自API 2.3起已更名为remove_keyboard
。
bot.sendMessage({
chat_id: message.chat.id,
text: 'Some text...',
reply_markup: JSON.stringify({
remove_keyboard: true
})
});
您应该使用editMessageReplyMarkup
,并在收到客户端用户的点击后用空字符串(''
)更新该消息的replyMarkup
。
更新这适用于内联键盘。
相关文章:
- 从远程脚本获取用户IP
- 如何通过自己获得Chrome扩展的用户反馈/错误报告
- d3基于用户选择动态更新节点
- 同步调用,直到用户通过angular验证为访问者
- 使用javascript搜索具有用户输入的数组
- 如何使用jquery确定用户是否年满18岁
- Meteor-添加用户自定义字段的方法不起作用
- React Native通过Navigator将用户输入数据传递到选项卡栏IOS中的组件
- 跟踪用户点击Adsense广告的IP地址
- 使用javascript反复检查用户在facebook上的登录状态
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 如何检查用户在html5视频播放器中观看了完整的视频
- 一个密码测试程序,如果存在空格,它会提醒用户
- 如何使用JavaScript中的用户输入创建序列/序列
- 当用户按下回车键时,自动在text区域/text中插入消息
- 显示某个用户ID的某个标签的30张Instagram图片
- 将当前用户的 ID 推送到 meteorjs 中集合/文档的内部数组
- javascript跨浏览器确定用户是否滚动到页面底部
- JSON获取用户id's在嵌套数组中
- 将jQuery转换为用户脚本的普通Javascript时遇到问题