Telegram内联查询多次回复失效:仅首次结果渲染,二次无响应
问题解答
单次内联查询调用不能发送多轮连续结果。
Telegram Bot API的规则是:每个内联查询的inline_query_id只能被AnswerInlineQueryAsync调用一次,第二次用同一个ID发起的响应请求会被Telegram服务器直接忽略,所以你的客户端只会收到第一次返回的"Loading..."结果,第二次的真实内容永远不会显示。
你代码里的核心问题就是连续两次调用await Bot.AnswerInlineQueryAsync(inlineQuery.Id, ...),用了同一个查询ID,这违反了API的限制,导致第二次请求无效。
如果想实现"先显示加载,再显示真实结果"的效果,有两种可行方案:
- 方案一:先异步获取真实数据,等数据拿到后再一次性返回结果,不显示中间的加载状态。
- 方案二:第一次返回加载结果后,引导用户触发新的内联查询(比如输入框内容微调、下拉刷新),在新的查询请求中返回真实结果。
内容的提问来源于stack exchange,提问作者rokdbest
相关产品推荐
相关产品推荐

