Выдать значок при посещении пользователем ссылки

Всё ещё ничего. Я пробовал заходить напрямую по URL, кликая на ссылку из поиска и кликая со страницы «Последние» темы.

Это сработало, но всё равно ничего.

И вы используете topic_id, а не post_id для этого?

hhttps://meta.discourse.org/t/grant-badge-when-user-visits-link/276700/17

Вот оно, в этом и была проблема, ха-ха. Извините за это. Теперь всё работает.

Следующий вопрос: можно ли повысить уровень доверия пользователя на основе получения им значка?

И можно ли полностью скрыть тему от публичного просмотра, сделав её видимой только по прямой ссылке?

Существует совершенно новый скрипт «Членство в группе пользователей через бейдж» для плагина автоматизации, который может подойти. Однако, вместо того чтобы напрямую добавлять их в группу уровня доверия, я бы предложил добавить их в пользовательскую группу, которая предоставляет определённый уровень доверия (таким образом, они не будут понижены при периодическом пересчёте уровней доверия).

В этом случае, вероятно, лучшим решением будет снять тему с публикации. Однако снятие с публикации всё равно отправляет уведомления всем, кто следит за темой или за первым постом в категории, поэтому вам также стоит рассмотреть возможность создания совершенно новой подкатегории для размещения темы, где никто ещё не успел начать следить за ней.

как мне добавить их в пользовательскую группу на основании того, что им была выдана значок, а затем как назначить им уровень доверия на основании того, что они состоят в группе?

где я могу найти этот скрипт

Для этого используйте сценарий автоматизации (см. ниже). При создании группы можно назначить уровень доверия, который будет автоматически присваиваться участникам этой группы:

Он является частью плагина Automation: