如何在电报机器人中使用自定义表情符号?

问题描述 投票:0回答:1

我想制作一个以文本形式发送一些静态自定义表情符号的机器人。我没有找到任何有用的说明,所以我尝试看看它的内部是如何制作的。我为我的测试机器人设置了一个 Webhook,并向我的机器人转发了一条包含自定义表情符号的消息。在那里,我发现了这样的东西(一些信息被删除,因为它是多余的):

{
    "update_id": 846867202,
    "message": {
        "message_id": 68,
        "from": {
            "id": <my id>,
            "is_bot": false,
            "first_name": "Shkiper",
            "last_name": "Desna"
        },
        "chat": {
            "id": <my id>,
            "first_name": "Shkiper",
            "last_name": "Desna",
            "type": "private"
        },
        "date": 1728164235,
        "text": "some emoji \ud83e\udd2a in text",
        "entities": [
            {
                "offset": 11,
                "length": 2,
                "type": "custom_emoji",
                "custom_emoji_id": "5408846744727334338"
            }
        ]
    }
}

所以我用它来发出 JSON 请求:

{
    "chat_id": <my id>,
    "text": "hello \ud83e\udd2a",
    "entities": [
        {
            "type": "custom_emoji",
            "offset": 6,
            "length": 2,
            "custom_emoji_id": "5408846744727334338"
        }
    ]
}

将其保存到文件

mess.json
并使用 cURL 发送:
curl https://api.telegram.org/bot<bot token>/sendMessage --header 'Content-Type: application/json' --request POST --data @mess.json

但最终,我收到一条消息,其中仅包含常规表情符号🤪,而不是原始消息中的自定义表情符号。

如何让机器人发送自定义表情符号?

json telegram telegram-bot
1个回答
0
投票

根据Telegram Bot API

自定义表情符号实体只能由在 Fragment 上购买了额外用户名的机器人使用。

进一步观察,您可以发现例如Github |帮助发送自定义表情符号,其描述如下

您可以在 Fragment 上购买用户名,支付 5000 TON 使其可分配给机器人,机器人将能够使用高级表情符号。

关于网站的fragment.com 似乎表明了相同(没有提及确切的费用)

您可以升级您的收藏用户名,将其分配给 Telegram 机器人。要升级,请将用户名分配给 Fragment 上的机器人,就像分配任何其他帐户一样,并在出现提示时支付一次性费用。

© www.soinside.com 2019 - 2024. All rights reserved.