Тоже задался таким же вопросом. Решил проверить
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)