Не совсем уверен, что правильно понял ваш метод? Возможно, стоит проверить, не усложняете ли вы настройку без необходимости.
Если работа с JSON вам не по душе, то запрос для поиска post_id может выглядеть так:
-- [params]
-- topic_id :topic_id
-- int :post_number
SELECT id
FROM posts
WHERE topic_id = :topic_id
AND post_number = :post_number
Затем вы можете использовать URL сообщения, чтобы извлечь идентификатор темы и номер сообщения и ввести их в поля параметров. Например: https://meta.discourse.org/t/grant-badge-when-user-visits-link/276700/4 (стоит отметить, что первое сообщение (OP) всегда имеет номер сообщения 1, даже если это не указано в ссылке на тему).
На самом деле, существует специальный параметр, который может ещё больше упростить поиск post_id через Data Explorer…
-- [params]
-- post_id :url
SELECT id
FROM posts
WHERE id = :url
Вставьте соответствующий URL сообщения в поле параметров, и вуаля — вы получите post_id ![]()
