🌙

pinMessage / unpinMessage

pinMessage / unpinMessage

Закрепление сообщений. В группах и каналах требуется право pin_messages, в личных чатах доступно обоим участникам.

pinMessage

POST ?method=pinMessage
{ "chat_id": 123, "message_id": 456 }
ПараметрТипОбяз.
chat_idint
message_idint

Ответ: { "ok": true, "result": true }. Журнал: pin.

Чат поддерживает несколько закреплённых сообщений одновременно — новое закрепление не снимает предыдущее.

unpinMessage

POST ?method=unpinMessage
{ "chat_id": 123 }

Метод открепляет все сообщения чата. Параметр message_id не поддерживается — точечное открепление доступно только из интерфейса мессенджера.

Ответ: { "ok": true, "result": true }. Журнал: unpin.

Чтение закреплённых

Отдельного метода списка нет. Последнее закреплённое сообщение приходит в поле pinned_message метода getChat:

chat = await bot.get_chat(chat_id)
if chat.pinned_message:
    print(chat.pinned_message.message_id)

Текст закреплённого сообщения getChat отдаёт зашифрованным — используйте только идентификаторы и метаданные.

Ошибки

КодОписание
400Не передан chat_id или message_id
403Бот не в чате или нет права pin_messages
404Сообщение не найдено

pykodaribot

await bot.pin_message(chat_id, message_id)
await msg.pin()
await bot.unpin_message(chat_id)

Закрепление по ответу на сообщение:

@dp.message(filters.command("pin"))
async def pin_cmd(msg):
    if msg.reply_to_message_id:
        await bot.pin_message(msg.chat.id, msg.reply_to_message_id)
        await msg.answer("Закреплено")
55 просмотров