Skip to main content

Реакции

Реакции на постах — множественные emoji со счётчиками, как в Telegram-каналах. Один пользователь может поставить несколько разных эмодзи на один пост.

В отличие от реакций на сообщения чата (message_reactions), реакции на посты глобальные — счётчик складывается по всем подписчикам. Юзер видит одинаковые числа на странице и в чате.

Endpoints​

Реакции — обычные пользовательские эндпоинты (не Bot API), вызываются с пользовательским bearer-токеном.

Поставить реакцию​

POST /api/posts/{external_id}/reactions
Content-Type: application/json
Authorization: Bearer <user_token>

{"emoji": "🔥"}

Ответ:

{
"ok": true,
"reactions": [
{"emoji": "❤", "count": 12, "user_ids": ["…","…"]},
{"emoji": "🔥", "count": 5, "user_ids": ["…"]}
],
"my_reactions": ["🔥"]
}

Снять реакцию​

DELETE /api/posts/{external_id}/reactions?emoji=🔥
Authorization: Bearer <user_token>

Ответ — тот же формат, без снятого эмодзи в my_reactions.

Снять все свои реакции​

DELETE /api/posts/{external_id}/reactions

(без query-параметра emoji).

В Bot API​

Реакции пользователей видны в getPost / createPost / editPost ответах:

"reactions": [
{"emoji": "❤", "count": 12, "user_ids": ["uuid1","uuid2"]},
{"emoji": "🔥", "count": 5, "user_ids": ["uuid3"]}
]

Боты не могут ставить реакции от своего имени через Bot API (как и в TG).

Совместимость со старым /like​

Эндпоинт POST /api/posts/{id}/like сохранён для обратной совместимости — он эквивалентен реакции «❤».

POST /api/posts/{id}/like # = react с emoji "❤"
DELETE /api/posts/{id}/like # = unreact с emoji "❤"

Поле liked_by_me в payload поста — true если пользователь поставил «❤».