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

如何使用Pyrogram在Telegram中实现指定样式的引用消息?

如何在Telegram中编写引用消息(Pyrogram实现)

两种引用类型的区别

Telegram中有两种常见的引用形式:

  • 内联文本引用:使用>符号标记的文本块,仅用于文本格式化。
  • 消息引用(回复式引用):引用聊天中已存在的消息,会显示原消息预览(包含发送者、时间等信息),点击可跳转至原消息。

1. 实现内联文本引用(你的代码改进)

你的当前代码已实现单条内联引用,若要实现多行块引用,只需在每一行前添加>:

@app.on_message()
async def send_quoted_message(client, message):
    await app.send_message(
        chat_id=message.chat.id,
        text="> 这是第一行引用内容\n> 这是第二行引用内容\n\n这是引用下方的普通文本",
        parse_mode='markdown'
    )

2. 实现消息引用(回复式引用)

如果目标是引用聊天中已存在的消息(显示原消息预览的形式),需使用reply_to_message_id参数指定要引用的消息ID:

@app.on_message()
async def send_message_quote(client, message):
    # 引用触发该函数的用户消息
    await app.send_message(
        chat_id=message.chat.id,
        text="这是我的回复内容,同时引用了你的消息",
        reply_to_message_id=message.message_id  # 指定要引用的消息ID
    )

若要引用聊天中的其他消息,只需将reply_to_message_id替换为目标消息的ID即可。


3. 自定义文本引用(模拟消息引用样式)

如果需要创建不依赖现有消息的自定义引用(模拟消息引用样式),可使用Pyrogram的MessageEntityTextQuote实体:

from pyrogram.types import MessageEntity, MessageEntityTextQuote

@app.on_message()
async def send_custom_quote(client, message):
    quoted_text = "要引用的自定义文本"
    reply_text = "这是引用下方的回复内容"
    
    await app.send_message(
        chat_id=message.chat.id,
        text=f"{quoted_text}\n{reply_text}",
        entities=[
            MessageEntityTextQuote(
                offset=0,
                length=len(quoted_text),
                chat_id=message.chat.id,
                message_id=message.message_id  # 需绑定真实存在的消息ID
            )
        ]
    )

内容的提问来源于stack exchange,提问作者صـوفـيـي M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:35:12