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, 可选):

文本格式解析器配置。值支持 markdownmd), htmlhtm), None

buttons (list), 可选):

配置消息按钮,参见示例,仅支持 bot 登录时。

限制:

最多可以有 100 个按钮(更多将被忽略)。 每行最多可以有 8 个按钮(更多将被忽略)。 按钮的最大回调数据为 64 字节。

silent (bool, 可选):

配置是否静默消息,默认关闭。

schedule (float, 可选):

配置是否定时消息,默认不配置。

返回:

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=''
))