如何实现点击Telegram的InlineKeyboardButton时让机器人请求用户选择联系人/聊天?
很遗憾地告诉你,目前Telegram Bot API并不支持通过InlineKeyboardButton直接触发用户选择联系人或聊天的请求。
你提到的通过KeyboardButtonRequestUser/KeyboardButtonRequestChat参数实现的选择功能,是Telegram专门为底部的常规键盘(也就是ReplyKeyboardMarkup中的KeyboardButton)设计的——官方文档里确实只在KeyboardButton的参数说明里提到了这两个请求类,而InlineKeyboardButton的可用参数里完全没有对应的选项。毕竟Inline键盘的设计初衷是用于和机器人进行即时回调交互(比如传递回调数据、打开外部链接等),而非触发这类需要调用系统选择器的操作。
如果你的业务场景需要类似的交互体验,这里有个可行的替代方案:
- 当用户点击目标InlineKeyboardButton时,机器人通过回调逻辑主动发送一条新消息,在这条消息里附带一个常规的
ReplyKeyboardMarkup,其中包含配置了KeyboardButtonRequestUser或KeyboardButtonRequestChat参数的KeyboardButton。 - 用户点击这个常规按钮后,就能触发系统的联系人/聊天选择器,完成选择后机器人就能获取到对应的信息了。
备注:内容来源于stack exchange,提问作者GlacierBlitz




