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

如何实现Telegram机器人间的文件交换?跨机器人文件ID调用失败及无数据库存储的解决方案咨询

解决方案:跨Telegram机器人复用文件(无需存储到数据库)

这确实是Telegram API的一个典型限制——每个机器人的文件标识符(比如photo_id)都是专属且与机器人Token绑定的,无法直接跨机器人复用。不过不用把文件存到数据库也能解决这个问题,这里有两种可行的方案:

方案1:内存中转文件二进制数据

核心思路是让第一个机器人把文件下载到内存,再将二进制数据传递给第二个机器人直接上传,全程不落地存储:

  1. 第一个机器人获取文件并下载:
    拿到photo_id后,调用Telegram API的getFile方法,获取文件的file_path。然后用第一个机器人的Token拼接成下载链接:https://api.telegram.org/file/bot<第一个机器人Token>/<file_path>,请求这个链接获取文件的二进制数据(比如用Python的requests.get().content)。

    示例代码(Python):

    import requests
    
    # 第一个机器人的Token
    BOT1_TOKEN = "your_bot1_token"
    photo_id = "拿到的图片ID"
    
    # 获取文件路径
    get_file_url = f"https://api.telegram.org/bot{BOT1_TOKEN}/getFile?file_id={photo_id}"
    file_response = requests.get(get_file_url).json()
    file_path = file_response["result"]["file_path"]
    
    # 下载文件二进制数据
    download_url = f"https://api.telegram.org/file/bot{BOT1_TOKEN}/{file_path}"
    file_data = requests.get(download_url).content
    
  2. 第二个机器人上传二进制数据:
    把拿到的file_data直接传给第二个机器人的sendPhoto接口,作为photo参数(以二进制流形式上传,不用文件ID)。

    示例代码:

    # 第二个机器人的Token
    BOT2_TOKEN = "your_bot2_token"
    chat_id = "要发送的聊天ID"
    
    send_photo_url = f"https://api.telegram.org/bot{BOT2_TOKEN}/sendPhoto"
    requests.post(send_photo_url, data={"chat_id": chat_id}, files={"photo": ("image.jpg", file_data)})
    

方案2:机器人间转发文件获取专属ID

如果你的两个机器人可以互相通信(比如有一个私有聊天会话),可以让第一个机器人把文件转发给第二个机器人,第二个机器人从转发的消息中提取属于自己的photo_id,存入数据库后续使用:

  • 第一个机器人调用forwardMessage,把包含图片的消息转发到第二个机器人的聊天ID(你需要先让两个机器人建立对话,获取第二个机器人的聊天ID)。
  • 第二个机器人监听新消息,当收到转发的图片时,提取自己的photo_id,替换数据库中原来的ID。

这个方案的好处是后续第二个机器人可以直接用自己的photo_id发送图片,不用每次都中转数据,但需要机器人之间能交互。

为什么直接用跨机器人的文件ID会失败?

Telegram的文件标识符是与机器人的Token关联的——每个机器人的文件索引是独立的,API会通过Token验证文件的归属权。当你用第二个机器人的Token去请求第一个机器人的photo_id时,Telegram找不到对应权限下的文件,就会抛出Bad Request: wrong file identifier错误。

而你尝试直接用文件链接发送失败,是因为Telegram的文件下载链接需要对应机器人的Token鉴权,第二个机器人用自己的Token无法访问这个链接,所以必须由第一个机器人先下载数据再传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 13:52:42