Добавление embed-блока на сайт Wix для комментариев

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

На странице встраивания я прошёл по всем шагам и добавил разрешённые хосты для своего сайта. Категория выбрана, и всё выглядит правильно.

Я заменил EMBED_URL на URL страницы, которую нужно встроить.

Я заменил DISCOURSE_USERNAME на своё имя пользователя Discourse для создания темы.

Я вставил весь HTML-код в HTML iFrame на своём сайте. Но по какой-то причине это всё равно не работает. Не уверен, где именно я ошибаюсь.


Есть ли у кого-нибудь идеи, как это исправить?

Я видел, что один человек упоминал JSON или RSS в другой теме, но понятия не имею, как начать этот процесс. Удалось ли кому-нибудь успешно добавить встроенный Discourse на отдельный веб-сайт?

Привет @ethanjs, добро пожаловать в Meta :wave:

Не уверен, но, кажется, вы не можете встраивать контент Discourse в iframe.

На моём сайте мы используем встроенный форум Discourse как движок для раздела комментариев на родительском сайте в нижней части статей, и это работает у нас довольно хорошо.

Эта дискуссия может помочь:

@Lillinator Спасибо за быстрый ответ!

Понял. Мне кажется, я видел, как кто-то упоминал об этом в одной из тем: нельзя вставлять код напрямую в iFrame.

Когда я вставляю код напрямую на сайт Velo by Wix, у меня возникает ошибка: “JSX-выражения должны иметь один родительский элемент”.

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

код должен выглядеть так, но с вашим именем пользователя на форуме и EMBED_URL как URL сайта, на который вы встраиваете:

<div id='discourse-comments'></div>
<meta name='discourse-username' content='DISCOURSE_USERNAME'>

<script type="text/javascript">
  DiscourseEmbed = {
    discourseUrl: 'https://community.alivemaps.com/',
    discourseEmbedUrl: 'EMBED_URL',
    // className: 'CLASS_NAME',
  };

  (function() {
    var 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);
  })();
</script>

Возможно ли использовать фрагмент? Я тестировал это, и казалось, что выводит разные ошибки. Но теперь это для ‘react’

Вам не нужно его фрагментировать, и этот код должен работать, если вы правильно указали EMBED_URL и DISCOURSE_USERNAME. Возможно, стоит ещё раз проверить настройки разрешённых путей хостов и категорий. :thinking: Ничего не знаю о Velo от Wix.

Обновил следующие параметры: EMBED_URL и DISCOURSE_USERNAME.

По какой-то причине без фрагмента весь код выдаёт ошибку. Как на изображении в первом скриншоте, но теперь с обновлённой информацией.

Я создал тему на форуме Velo, чтобы узнать, не знают ли они, где я ошибаюсь.

Я бы очень хотел узнать, как заставить это работать. Даже без возможности комментирования, просто чтобы связать каждую страницу с форумом — это было бы здорово!

Правильно ли я понимаю, что вы читали это: Wix Editor: Embedding a Site or a Widget | Help Center | Wix.com

Кажется, они загружаются в iframes.

:smiling_face_with_three_hearts: Обожаю это ^^^^ :smiling_face_with_three_hearts:

Да, это наш сайт :slight_smile: Спасибо. Я администратор форума Discourse, но не сайта, в который он встроен.

Да, я не вижу ошибок в вашем коде, поэтому думаю, что проблема может быть в сайте Wix. Возможно, дело в других настройках, например, в разрешённых хостах и путях в Wix. Надеюсь, они смогут помочь вам со своей стороны, или кто-то здесь узнает вашу проблему и сможет помочь. На данный момент я не вижу причин, по которым у вас это не работает.

Да, я изучил инструкцию по встраиванию. Также я звонил в поддержку Wix примерно четыре раза. Меня перенаправили к их команде экспертов, но я попал на автоответчик, так как они были слишком заняты. Затем несколько дней назад я получил письмо.

Скорее всего, я отвечу на это письмо, добавив дополнительные детали по запросу.

Только что отправил им сообщение

Да, я подозреваю, что это потому, что Discourse не загружает встроенные элементы в iframe.

Я думаю, вы правы насчёт iFrame. Я следовал инструкциям со страницы Админ > Настройка > Встраивание. Попытался изменить и обновить его всеми возможными способами, о которых мог подумать.

iFrame, скорее всего, является корнем проблемы, поскольку это JavaScript. Я заметил, что в ссылке, которую вы прислали последней, есть раздел «Custom Element» (Пользовательский элемент) ниже HTML и «Встроить сайт». Я полагаю, что именно это, вероятно, и создаёт препятствие.

Огромное спасибо за всю вашу помощь, Лилли!

Пожалуйста, @ethanjs, но мне жаль, что я не смогла помочь вам больше. :face_with_diagonal_mouth:

Всё в порядке, я напишу сюда, что узнаю от поддержки Wix.

Думаю, это в основном проблема их конструктора сайтов по сравнению с чем-то вроде WordPress. Похоже на распространённую проблему, с которой пользователи Wix сталкиваются на протяжении многих лет, но чёткого решения до сих пор нет.