Встраивание в дискурс

При встраивании в обсуждение я никак не могу заставить его автоматически назначаться в категорию.

Я использую приложение на VueJS, где на каждой стандартной странице (подкатегория в Discourse) я хочу отображать встроенное обсуждение, связанное с этими подкатегориями.

Мой код для встраивания выглядит следующим образом:

window.DiscourseEmbed = {
discourseUrl: ‘https://forum.example.example.nz/’,
discourseEmbedUrl: ‘https://example.example.example.nz/c/english-level-1/1-1-written-text-study/
// topicId: 273
};

    (function () {
      const d = document.createElement('script'); d.type = 'text/javascript'; d.async = true;
      d.src = `${DiscourseEmbed.discourseUrl}javascripts/embed.js`;

      (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(d);
    }());

Ограничения:
Я понимаю, что использование этой функции встраивания создаст новую тему.
Также я не могу добавить категорию в объект “window.DiscourseEmbed” для автоматического назначения.

Но я бы очень хотел, чтобы встроенный код создавал это новое обсуждение в моей
(категории) english level 1 → (подкатегории) standard 1.1.

Вы можете увидеть это здесь:

Здесь есть ссылка на категорию, в которую я хочу поместить обсуждение. Но эта тема находится на самом верхнем уровне в разделе latest, что не совсем удобно.

Я знаю, что можно использовать host, и я пытался обойти это следующим образом:

Не уверен, что упускаю что-то важное, или просто пытаюсь использовать функцию встраивания для гораздо более специфичного случая, чем она задумана.

Любая помощь будет очень кстати, спасибо :slight_smile:

Темы должны создаваться в категории, которую вы указали для хоста. Судя по вашему второму скриншоту, проблема в том, что вы настроили два разрешённых хоста для localhost:8082, но белый список путей (Path Whitelist) первого хоста приводит к тому, что все темы публикуются без категории.

Белый список путей должен указывать путь домена, который вы задали в поле «Разрешённые хосты» (Allowed Hosts), поэтому он должен начинаться просто с /. Вот скриншот настроек с моего тестового сайта. Он публикует все темы из моего блога в категорию «scratch»:

Если бы я хотел публиковать только темы из пути /blog на моём сайте, я бы настроил это так:

image

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

Как видите, я последовал вашему совету:

Всё настроено так, как вы предлагали. Но всё равно создаётся тема без категории, хотя я ожидал, что она попадёт в English Level 1 (категория) → 1.1 Written Text Study (подкатегория).

Вот URL, который я использую как discourseEmbedUrl: “h ttps://forum.studyit.govt.nz/c/english-level-1/1-1-written-text-study”

Уверен, что проблема в моём Whitelist путей, но, похоже, он не принимает ничего, кроме /.*

  • Я ожидал, что следующее изображение перенаправит всё в подкатегорию 1.1, но этого не происходит:

Наконец, URL страницы, на которой происходит встраивание: http://localhost:8082/#/English/level/1/standard/1.1/discussion

Настройка «Белый список путей» должна указывать путь к сообщениям, которые вы пытаетесь импортировать на свой сайт Discourse, а не путь к месту, где вы хотите опубликовать сообщения на Discourse. То, как это настроено на вашем втором скриншоте, выглядит для меня правильно. Не понимаю, почему публикация тем в нужную категорию не удаётся. Установлены ли для этой категории какие-либо права безопасности? Разрешено ли группе «Все» действие «Создавать / Отвечать / Просматривать» в этой категории?