• Как использовать премиум emoji телеграм в UserBot на pyrogram?

    @loharik229
    Тоже задался таким же вопросом. Решил проверить send_message() и нашел это:
    entities (List of MessageEntity) – List of special entities that appear in message text, which can be specified instead of parse_mode.

    Дальше рыскал и нашел pyrogram.raw.types.MessageEntityCustomEmoji. Дело в том, что при отправке сообщения можно добавить MessageEntity, а есть еще MessageEntityCustomEmoji, что и является необходимым MessageEntity.

    MessageEntityCustomEmoji требует три параметра: length, offset и document_id. Их можно получить, взяв какой нибудь message имеющий премиум-эмоджи. Я написал в избранное сообщение с двумя кастомными эмоджи и нашел:
    "entities": [
            {
                "_": "MessageEntity",
                "type": "MessageEntityType.CUSTOM_EMOJI",
                "offset": 3,
                "length": 2,
                "custom_emoji_id": 5343528654456496221
            },
            {
                "_": "MessageEntity",
                "type": "MessageEntityType.CUSTOM_EMOJI",
                "offset": 5,
                "length": 2,
                "custom_emoji_id": 5343615236702215768
            }
        ],

    Здесь хранится и offset и document_id (custom_emoji_id). length это длина сообщения вместе с этим MessageEntity.

    Итак, чтобы отправить премиум эмодзи, в send_message() добавляем параметр:
    entities=[pyrogram.raw.types.MessageEntityCustomEmoji(offset=1, length=1, document_id=1)]
    . Вместо offset ставим offset из необходимого премиум эмодзи (которое получили улавливая message), вместо document_id пишем custom_emoji_id из нужного премиум эмодзи, а вместо length длину текста вместе с эмодзи.
    Пример:
    await app.send_message(message.chat.id, "text", entities=[pyrogram.raw.types.MessageEntityCustomEmoji(offset=3, length=6, document_id=5343528654456496221), pyrogram.raw.types.MessageEntityCustomEmoji(offset=5, length=6, document_id=5343615236702215768)])

    Этот пример пишет "text" и 2 премиум-эмодзи (параметр entities требует массив с различными MessageEntity)
    Ответ написан
    5 комментариев