send_message()¶
-
Client.
send_message
()¶ 向指定的用户,群组或频道发送消息。
默认文本解析模式与官方应用程序相同(Markdown)
向 bot 发送 start 参数命令 (例如
?start=data
) 同样可行,请直接发送/start data
。- 参数:
- entity (
user
|chat
|channel
): 接收消息的对象
- message (
str
|message
): 要发送的消息或消息对象。
消息的最大长度为
35,000
字节或4,096
个字符。较长的消息不会自动分割,如果要发送的文本长于最大长度,则应手动分割。- reply_to (
int
|message
, 可选): 要回复的消息 id 或者消息对象。
- parse_mode (
str
, 可选): 文本格式解析器配置。值支持 markdown (md), html (htm), None。
- link_preview (
bool
, 可选): 配置是否展示消息预览,默认开启。
- buttons (
list
), 可选): 配置消息按钮,参见示例,仅支持 bot 登录时。
- 限制:
最多可以有
100
个按钮(更多将被忽略)。 每行最多可以有8
个按钮(更多将被忽略)。 按钮的最大回调数据为64
字节。
- silent (
bool
, 可选): 配置是否静默消息,默认关闭。
- schedule (
float
, 可选): 配置是否定时消息,默认不配置。
- entity (
- 返回:
message
: 成功则将返回已发送的消息。
示例
# 默认使用 Markdown 解析器解析文本。 await client.send_message('me', 'Hello **world**!') # 更改客户端的默认解析器。 client.parse_mode = 'html' await client.send_message('me', 'Some <b>bold</b> and <i>italic</i> text') await client.send_message('me', 'An <a href="https://example.com">URL</a>') await client.send_message('me', '<a href="tg://user?id=me">Mentions</a>') # 混合解析 client.parse_mode = None # 手动配置单条消息的解析器为 Markdown 。 await client.send_message('me', 'Hello, **world**!', parse_mode='md') # 手动配置单条消息的解析器为 Html 。 await client.send_message('me', 'Hello, <i>world</i>!', parse_mode='html') # 如果使用 Bot 登录,则您可以使用按钮: from telethon import events, Button @client.on(events.CallbackQuery) async def callback(event): await event.edit('感谢点击 {}!'.format(event.data)) # 单个按钮 await client.send_message(chat, '只是一个会回调 "clk1" 的按钮。', buttons=Button.inline('点我', b'clk1')) # 多个按钮 await client.send_message(chat, '选一个吧!', buttons=[ [Button.inline('回调'), Button.inline('这是回调')], [Button.url('访问网站', 'https://example.com')] ]) # 消息需要回复 await client.send_message(chat, '欢迎', buttons=[ Button.text('感谢!', resize=True, single_use=True), Button.request_phone('发送电话号码'), Button.request_location('发送位置') ]) # 强制回复或清除按钮。 await client.send_message(chat, '回复我', buttons=Button.force_reply()) await client.send_message(chat, '清楚按钮', buttons=Button.clear()) # 定时 5 分钟后发送消息 from datetime import timedelta await client.send_message(chat, '你好,未来!', schedule=timedelta(minutes=5))