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

如何使用Telethon获取file_id?Telegram Bot开发实操问题

Telethon获取file_id方法说明

Telethon原生支持获取各类Telegram媒体资源的file_id,包含图片、视频、文档、音频等所有可发送的附件类型。

常用获取场景操作

  • 从接收的消息中提取file_id
    你可以直接从消息的file属性中获取对应媒体的file_id,示例代码如下:
from telethon import TelegramClient, events

# 替换为你自己的api_id、api_hash、机器人token
client = TelegramClient('bot_session', api_id=123456, api_hash="你的api_hash字符串").start(bot_token="你的机器人token")

@client.on(events.NewMessage())
async def get_file_id_from_msg(event):
    if event.media:
        current_file_id = event.file.id
        print(f"获取到的file_id为:{current_file_id}")

client.run_until_disconnected()
  • 上传本地文件时获取file_id
    上传本地文件到Telegram服务器后,可以直接从返回的上传对象中拿到对应file_id,后续可以直接用该file_id发送文件,无需重复上传,示例代码如下:
async def upload_local_file(file_path):
    # 上传本地文件
    uploaded_media = await client.upload_file(file_path)
    # 提取file_id
    current_file_id = uploaded_media.id
    print(f"上传文件对应的file_id为:{current_file_id}")
    # 直接用file_id发送文件示例
    await client.send_file("接收方ID/用户名", file=current_file_id)

注意:Telegram的file_id与应用的api_id绑定,仅能在对应同api_id的客户端或机器人中使用,跨应用的file_id无法正常识别。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:09:03