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

如何通过UserID查询Telegram用户信息,非聊天列表用户如何处理

Tdlib 基于陌生user_id查询用户信息的解决方法

问题原因

getUser 接口仅能读取Tdlib本地缓存中已有的用户数据,不在你的聊天列表内的用户默认不会预拉取数据到本地缓存,因此直接调用该接口无法返回结果。

可行解决方案

  • 优先使用 searchUser 接口
    该接口会直接向Telegram服务端发起查询请求,无需依赖本地缓存。直接把目标user_id的字符串形式作为query参数传入即可,只要用户ID合法且用户未开启禁止通过ID搜索的隐私设置,就能拿到对应用户信息。
    调用示例:
    {
      "@type": "searchUser",
      "query": "2024211111",
      "limit": 1
    }
    
    接口返回的users数组第一个元素即为目标用户数据,查询完成后Tdlib会自动把该用户数据写入本地缓存,后续再调用getUser也会正常返回结果。
  • 备选方案:临时导入联系人
    如果searchUser无返回结果,可以先调用importContacts接口导入该user_id对应用户为临时联系人,导入完成后再调用getUser即可正常拉取信息,不需要留存的话后续调用removeContacts删除即可,整个操作不会给用户发任何通知。

注意事项

若目标用户开启了「不允许陌生人通过用户ID搜索到我」的隐私设置,以上两种方法均无法查询到该用户信息,属于正常的权限限制,无规避方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 21:06:04