send_file()¶
-
Client.
send_file
()¶ 向指定对话发送文件。
注解
安装
hachoir3
包(hachoir
模块),它可以被用于获取音频和视频元信息。安装
pillow
包,它可以自动调整图片尺寸以支持 Telegram 上传,但是,如果使用InputFile
发送图片,则无法完成。- 参数:
- entity (
user
|chat
|channel
): 需要发送文件的对话的对象。
- file (
str
|bytes
|file
|media
): 支持路径、包含文件的
bytes
、网络链接、file_id
、文件句柄(例如message.media
)。- caption (
str
, 可选): 配置媒体文件的说明文字。
- force_document (
bool
, 可选): 强制以文件方式发送图片等。
- reply_to (
int
|message
, 可选): 要回复的消息 id 或者消息对象。
- parse_mode (
str
, 可选): 文本格式解析器配置。值支持 markdown (md), html (htm), None。
- buttons (
list
), 可选): 配置消息按钮,参见示例,仅支持 bot 登录时。
- 限制:
最多可以有
100
个按钮(更多将被忽略)。 每行最多可以有8
个按钮(更多将被忽略)。 按钮的最大回调数据为64
字节。
- silent (
bool
, 可选): 配置是否静默消息,默认关闭。
- schedule (
float
, 可选): 配置是否定时消息,默认不配置。
- entity (
- 返回:
message
: 如果成功则返回消息对象。
示例
# 图片文件 await client.send_file(chat, '/my/photos/me.jpg', caption="It's me!") # 或者 await client.send_message(chat, "It's me!", file='/my/photos/me.jpg') # 语音文件 await client.send_file(chat, '/my/songs/song.mp3', voice_note=True) await client.send_file(chat, '/my/videos/video.mp4', video_note=True) # 自定义缩略图 await client.send_file(chat, '/my/documents/doc.txt', thumb='photo.jpg') # 文件 await client.send_file(chat, '/my/photos/photo.png', force_document=True) # 图辑 await client.send_file(chat, [ '/my/photos/holiday1.jpg', '/my/photos/holiday2.jpg', '/my/drawings/portrait.png' ]) # 提示上传进度 def callback(current, total): print('Uploaded', current, 'out of', total, 'bytes: {:.2%}'.format(current / total)) await client.send_file(chat, file, progress_callback=callback) # 骰子,包括飞镖和其他动态表情符号 from telethon.tl import types await client.send_file(chat, types.InputMediaDice('')) await client.send_file(chat, types.InputMediaDice('🎯')) # 联系人 await client.send_file(chat, types.InputMediaContact( phone_number='+34 123 456 789', first_name='Example', last_name='', vcard='' ))