Telegram机器人自定义表情回应全攻略:官方Bot API与互动实战

深入解析Telegram Bot API的setMessageReaction方法,手把手教你打造自定义表情回应机器人,实现关键词自动回复、随机表情互动等高级玩法。

阅读提示建议先浏览小标题,再根据需要深入阅读具体段落。

Telegram的表情回应(Reactions)功能为聊天互动增添了丰富的情感表达。而通过官方Bot API,机器人同样可以发送表情回应,甚至做到「自定义」——根据消息内容自动选择特定表情。本文将带你从零开始,掌握Telegram机器人自定义表情回应的完整实现方案。

什么是Telegram表情回应与自定义表情

Telegram的表情回应允许用户对单条消息快速添加表情符号,目前支持默认emoji和自定义贴纸档(Custom Emoji)。机器人通过setMessageReaction方法,可以对指定消息添加或移除表情回应。自定义表情回应则是指机器人根据预设规则,灵活选择回应表情,而非固定一种,从而实现更智能的互动体验。

机器人自定义表情回应的应用场景

  • 自动反馈:当用户发送「赞」时,机器人自动回一个👍或自定义点赞贴纸。
  • 群管理:对违规消息自动回应⛔,提醒管理员注意。
  • 趣味互动:随机对消息投掷🎲或自定义表情,增加活跃度。
  • 情绪识别:根据关键词(如开心、难过)匹配对应表情。

准备工作:创建机器人并获取Token

  1. 在Telegram中与@BotFather对话,发送/newbot,按提示设置名称和用户名。
  2. 创建成功后,BotFather会返回API Token,请妥善保存。
  3. 如果需要使用自定义表情(Custom Emoji),请确保你的Telegram账号为Premium,或使用已有自定义贴纸包的ID。

使用Bot API发送表情回应(setMessageReaction)

Bot API的setMessageReaction方法允许机器人对消息添加反应。基本请求格式如下:

POST https://api.telegram.org/bot<token>/setMessageReaction
{
  "chat_id": "@example_chat",
  "message_id": 42,
  "reaction": [{"type": "emoji", "emoji": "👍"}]
}

其中reaction是一个数组,支持传递多个表情。如果想使用自定义emoji,只需将type改为custom_emoji并传递custom_emoji_id

自定义表情回应的实现思路

要实现“自定义”,通常需要:

  1. 监听消息:通过getUpdates或Webhook接收用户消息。
  2. 处理规则:编写关键词、正则或随机逻辑,决定回应哪种表情。
  3. 调用API:使用sendMessagesetMessageReaction发送回应。

最简单的做法是:当收到特定消息时,调用setMessageReaction直接对用户的消息添加反应,这样无需额外发送一条消息。

完整示例:基于关键词自动回应自定义表情

下面以Python为例,使用requests库实现一个关键词触发反应的服务(需配合Webhook或长轮询)。

import requests

TOKEN = "你的BOT_TOKEN"
def set_reaction(chat_id, message_id, emoji):
    url = f"https://api.telegram.org/bot/setMessageReaction"
    payload = {
        "chat_id": chat_id,
        "message_id": message_id,
        "reaction": [{"type": "emoji", "emoji": emoji}]
    }
    requests.post(url, json=payload)

# 伪代码:处理更新的循环(省略getUpdates解析)
for update in get_updates():
    msg = update["message"]
    text = msg.get("text", "")
    chat_id = msg["chat"]["id"]
    message_id = msg["message_id"]
    if "棒" in text:
        set_reaction(chat_id, message_id, "👍")
    elif "哈哈" in text:
        set_reaction(chat_id, message_id, "😄")

如需使用自定义emoji,可先通过getCustomEmojiStickers获取ID,然后修改reaction数组。

高级技巧:随机表情、按用户反应、自定义emoji使用

随机表情

结合Python的random模块,从表情列表中随机选择:

import random
emojis = ["🎉", "🔥", "❤️", "🤖"]
set_reaction(chat_id, message_id, random.choice(emojis))

按用户反应触发

监听message_reaction更新,当用户对消息添加反应时,机器人可做出后续动作(例如记录或回赠表情)。

自定义emoji的使用

自定义emoji需要Premium身份或有权限的操作者。你可以通过getCustomEmojiStickers获取emoji ID,然后在reaction中设置:

{"type": "custom_emoji", "custom_emoji_id": "5368324170671202286"}

注意事项与限制

  • 机器人必须为聊天成员,且拥有相应权限(如匿名管理时可能受限)。
  • setMessageReaction要求消息时间不能超过多久,具体参考官方文档。
  • 自定义emoji只有Premium用户创建才能被机器人使用,且需确保emoji包存在。
  • 反应数量有限制,每条消息最多约5-6个反应,请合理设计。

总结

官方Bot API提供的表情回应功能为机器人交互开辟了新思路。通过自定义表情回应,你可以打造个性十足、互动性强的Telegram机器人。从基础调用到高级随机策略,本文已为你铺平道路。现在就去BotFather创建一个机器人,开启你的自定义表情互动之旅吧!

FAQ

官方客户端下载

常见问题