Чтобы отображать самые свежие темы из одного экземпляра Discourse в другом, я использовал интеграцию на основе Zapier. Она берёт первый пост (OP) из каждой новой темы в интересующей категории и публикует его как ответ в нужной теме. В качестве места назначения может выступать как тот же самый экземпляр, так и другой.
Эта статья оказалась чрезвычайно полезной для решения данной задачи:
Процесс
- Настройте веб-хук в исходном экземпляре Discourse для перехвата новых постов в соответствующей категории.
- Посты содержат гораздо больше данных, чем темы, что пригодится на следующих этапах.
- Настройте Zap для перехвата веб-хука.
- Отфильтруйте все посты, кроме тех, у которых номер поста равен 1, а количество прочтений равно 0:
- это гарантирует, что вы перехватываете только новые темы и не дублируете посты при последующих правках.
- Создайте пользователя в целевом экземпляре Discourse с уровнем доверия 4 (чтобы разрешить публикацию даже в закрытых темах) и убедитесь, что у него есть доступ к нужной категории. Настройте API для этого пользователя.
- В Zap используйте этот API для публикации контента в нужную тему.
- Настройте текст ответа, добавив ссылки и прочее, например:
- Закройте эту тему, чтобы предотвратить публикации других участников.

