Ответ 422 Unprocessable Content при использовании ActivityPub с WP Discourse

Я использую последнюю версию WordPress вместе с последним плагином WordPress. При автоматической публикации из WP в Discourse я получаю следующую ошибку:

Публикация сообщения на Discourse с вашего сайта [netzwissen.de] не удалась. Сообщение '@netzwissen.de Migration erledigt' было опубликовано в WordPress пользователем autor01 2024-01-01 в 13:34:14. [https://www.netzwissen.de/2024/01/01/netzwissen-de-migration-erledigt/](https://www.netzwissen.de/2024/01/01/netzwissen-de-migration-erledigt/)

Причина ошибки: от Discourse был получен код ответа 422. Embed url используется уже. Если у вас возникли проблемы с плагином WP Discourse, вы можете найти помощь здесь: [https://meta.discourse.org/c/support/wordpress](https://meta.discourse.org/c/support/wordpress)

Несмотря на эту ошибку, сообщение появляется в Discourse, но с пустыми блоками <div> ...</div>, которые поступают из фреймворка темы Divi в WordPress (Divi — The Ultimate WordPress Theme & Visual Page Builder). Разве такой HTML/CSS-код не должен автоматически удаляться при конвертации в схему bbcode/md в Discourse?

Привет, Томас! Моё первоначальное предположение: ошибка возникает из-за того, что публикация отправляется в Discourse дважды, а проблема с HTML — отдельная. Давайте начнём с проблемы двойной публикации. Можешь, пожалуйста, уточнить несколько моментов:

  1. Где ты видишь эту ошибку? В просмотре логов в плагине WP Discourse?
  2. Видишь ли ты это при публикации всех постов в Discourse или только некоторых?
  3. Планируешь ли ты публикацию постов?
  4. Какой редактор WordPress ты используешь для создания постов (классический или Gutenberg)?
  5. Используешь ли ты какие-либо другие темы, плагины или кастомизации, влияющие на способ публикации в WordPress?

Привет, Энгус, прежде всего с Новым годом Шотландию (я так предполагаю) :sunny:

Это письмо об ошибке от WP CMS, то есть оно создается кодом плагина WP и отправляется через фреймворк CMS.

Пока что во всех постах.

Нет. Но я редактировал пост в WP и сохранил его как черновик перед финальной публикацией. Так что, теоретически, действие “опубликовать”, включая “опубликовать через API Discourse”, должно происходить только один раз…

Я использую тему Divi и встроенный редактор от

Пока не тестировал с Гутенбергом или классическим редактором.

Не могли бы вы перейти к представлению журналов в WP Discourse, нажать «Скачать» и отправить мне скачанный файл в личные сообщения? Это поможет мне лучше понять вашу среду, настройки и ошибку. Спасибо!

И с Новым годом! (К сожалению, я только австралиец, что гораздо менее интересно ;))

Привет! У меня сейчас точно такая же проблема, и я не могу решить её самостоятельно. Каждый раз при публикации статьи она не связывается с темой в Discourse. Та же ошибка, что и выше. Буду рад узнать, если вы нашли решение.

У вас также включен плагин ActivityPub? Если да, то он пока несовместим с встроенными темами, созданными плагином WP Discourse (что и стало проблемой в этой теме).

К сожалению, для меня это не проблема. У меня нет этого плагина.

Привет, @Miasanrot! Не могли бы вы создать новую тему с более подробным описанием возникшей проблемы? В частности:

  1. Логи WP Discourse, включая мета-файл.
  2. Логи Discourse, в частности лог ошибок.
  3. Список плагинов, которые вы используете в Discourse.

Спасибо!

Так как у @Miasanrot нет плагина ActivityPub, я предполагаю, что проблема заключается в контенте, который передаётся из плагина WP в API Discourse. Возможно, https://github.com/discourse/wp-discourse/blob/main/lib/discourse-publish.php требует небольшой доработки перед созданием записи поста в Discourse…

Привет, @Thomas_Rother, эта ошибка может возникнуть по разным причинам. Лучше всего рассматривать каждую из них отдельно.

У меня всё ещё есть серьёзные проблемы с плагином WP-Discourse при его использовании с текущей установкой WordPress в сочетании с темой Divi и конструктором Divi от https://www.elegantthemes.com

  1. Ошибка 422 при публикации новых записей в WordPress, как описано выше.
  2. В сообщении, созданном плагином через API Discourse, отсутствует «чистый» контент в формате Markdown.

Я временно отключил плагин WP-Discourse версии 2.5.2, так как он пока непригоден для моих задач. ПРИМЕЧАНИЕ: Теперь я считаю, что мой исходный заголовок был неверным/вводящим в заблуждение. Это проблема взаимодействия WordPress → Discourse; она не имеет никакого отношения к плагину ActivityPub в WordPress (ActivityPub – WordPress-Plugin | WordPress.org Deutsch) и ещё меньше — к плагину ActivityPub от @angus, установленному внутри экземпляра Discourse.

Можете написать мне в личные сообщения? Я хотел бы разобраться в этом.