You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Pyrogram实现以用户使用的语言进行自动回复?

Telegram Bot 获取用户language_code解决方案

Telegram 未开放主动查询用户语言的API接口,language_code字段仅会在用户主动触发的交互事件(消息、回调查询、inline请求等)的Update payload 中返回,无法通过get_users这类通用用户查询接口获取。

具体实现方案如下:

  • 从交互事件的User对象中直接取值
    不同框架的取值示例:
    • python-telegram-bot:update.effective_user.language_code
    • pyTelegramBotAPI:message.from_user.language_code
    • 原生HTTP API:取Update对象下from字段的language_code属性
      拿到的返回值为ISO 639-1标准的两位语言代码,例如zh代表中文、en代表英文、ru代表俄语。
  • 处理空值场景
    language_code是可选返回字段,若用户未公开语言设置、使用未收录的小众语言时,该字段会返回None,此时可以做两种降级处理:
    1. 直接使用你预设的默认语言回复
    2. 发送语言选择菜单让用户手动指定,将用户选择的语言和用户ID绑定存入你的数据库,后续优先读取数据库中用户手动选择的语言
  • 主动推送场景的适配
    如果你需要主动给用户推送消息,需要在用户第一次和机器人交互时,就把他的user_id和对应language_code存入你的数据库,后续推送时直接从库中查询即可,不要试图调用官方API主动查询用户语言,官方没有提供对应接口。

内容的提问来源于stack exchange,提问作者s1ckoleg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 21:45:03