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