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

如何在Telegram欢迎机器人中实现艾特新成员并回复入群系统消息功能

Telegram欢迎机器人功能修改方案

你需要的两个功能可通过修改welcome函数实现,核心修改逻辑如下:

  • 要@提及新成员,使用Telegram HTML解析模式支持的用户链接格式:<a href="tg://user?id=用户ID">用户名</a>,点击即可触发艾特效果
  • 要回复系统生成的入群通知消息,调用send_message时传入reply_to_message_id参数,值为系统入群通知的消息ID(也就是update.message.message_id)

修改后的完整welcome函数代码如下:

# Welcome a user to the chat
def welcome(update, context, new_member):
    """ Welcomes a user to the chat """

    message = update.message
    chat_id = message.chat.id
    logger.info(
        "%s joined to chat %d (%s)",
        escape(new_member.first_name),
        chat_id,
        escape(message.chat.title),
    )
    # Pull the custom message for this chat from the database
    text = db.get(str(chat_id))

    # Use default message if there's no custom one set
    if text is None:
        text = "Hello $username! Welcome to $title 😊"

    # 替换用户名为带@链接的格式
    mention_user = f'<a href="tg://user?id={new_member.id}">{escape(new_member.first_name)}</a>'
    text = text.replace("$username", mention_user)
    text = text.replace("$title", escape(message.chat.title))
    
    # 新增reply_to_message_id参数,回复系统入群通知
    send_async(
        context, 
        chat_id=chat_id, 
        text=text, 
        parse_mode=ParseMode.HTML,
        reply_to_message_id=message.message_id
    )

注意事项

  • 原代码已经导入escape方法,无需额外引入
  • 确保机器人在群组中拥有发送消息的权限,否则无法正常发送欢迎内容
  • 如果自定义欢迎消息里需要保留纯文本用户名,可以额外增加一个$username_plain占位符按需使用

内容的提问来源于stack exchange,提问作者user16560224

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 00:45:10