Telethon发送Quizbot查询指令无法生成带via标记的组件消息问题
问题产生原因
- Telegram客户端输入
@Quizbot quiz:ViioLbLq时触发的是Inline Bot交互逻辑:客户端会自动向Telegram后台提交针对Quizbot的Inline查询请求,拉取到bot返回的预制消息组件后,你点击组件才会发送带via Quizbot标识的特殊Inline消息,和普通文本消息属于完全不同的发送流程。 - 直接调用
client.send_message()仅会发送普通文本消息,不会走Inline Bot的查询、结果选择、发送链路,因此接收方只能拿到纯文本内容,不会渲染对应组件和via标识。
解决方法
你需要手动调用Telethon提供的Inline查询接口完成完整流程,实现代码如下:
# 向Quizbot发起Inline查询,第二个参数为查询内容 query_results = client.inline_query("Quizbot", "quiz:ViioLbLq") # 选择查询结果的第一项发送到目标会话 query_results[0].send(someone)
如果bot返回的查询结果有多条,你可以遍历query_results选择匹配的项再发送即可。
内容的提问来源于stack exchange,提问作者Sarthak Pokharel
相关产品推荐
相关产品推荐

