如何使用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
相关产品推荐
相关产品推荐

