Ошибка публикации темы с WP Discourse

Привет, Саймон,

У меня есть сайт (mycp.org), где WordPress выступает в роли основного провайдера единого входа (SSO). Всё работает отлично, за исключением публикации в Discourse. Я выбрал опцию автоматической публикации, но заметил, что она не работает с редактором блоков. Затем я включил принудительную публикацию и обновил пост, но это не помогло. Так что я установил классический редактор (мне не нравится Gutenberg и все его дополнительные навороты). Попробовал опубликовать — снова безрезультатно. Отключил принудительную и автоматическую публикацию и попытался обновить пост через редактор (хотя на этот раз ничего не менял). На протяжении всего процесса я получаю эту ошибку: «Произошла ошибка при публикации вашего поста. Пожалуйста, попробуйте снова».

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

Спасибо,

Пол

Получаете ли вы ошибку со всеми сообщениями или только с конкретным?

Если проблема возникает только для конкретного сообщения, перейдите на экран редактирования этого сообщения и выберите «Настраиваемые поля» (Custom Fields) во вкладке «Параметры экрана» (Screen Options), которая должна находиться в правом верхнем углу страницы:

После этого прокрутите страницу вниз и разверните мета-бокс «Настраиваемые поля». Если вы увидите какие-либо поля, совпадающие с теми, что на этом скриншоте, вы можете безопасно нажать кнопку «Удалить» для них и снова попытаться опубликовать сообщение в Discourse. Если вы видите поле wpdc_topic_tags, его также можно удалить. Возможно, именно это поле вызывает проблему (Discourse теперь возвращает ошибку для недопустимых тегов) — я прямо сейчас реализую исправление для этого.

Дайте знать, если это поможет или если вы всё ещё получаете ошибки.

Привет, Саймон,

Прошло уже довольно много времени с тех пор, как я пробовал публиковать другие записи, поэтому я могу ответить на первый вопрос. Я следовал этим инструкциям. Здесь не показано ещё одно поле — wpdc_publishing_error, которое до и после этой попытки (она не удалась) имело значение “Forbidden”.

Я могу попробовать создать новую запись и обновить её, если это поможет.

Пол

Это помогает! Проверьте значения, которые вы ввели на вкладке «Настройки подключения» плагина. Убедитесь, что вы используете API-ключ «Все пользователи» вашего сайта Discourse и что имя пользователя для публикации установлено как «system». Единственный случай, когда это не должно быть установлено в «system», — если вы изменили имя пользователя системного аккаунта в Discourse.

Далее перейдите на страницу вашего профиля в WordPress и убедитесь, что имя пользователя Discourse точно совпадает с вашим именем пользователя в Discourse. Поле «Имя пользователя Discourse» находится в нижней части страницы вашего профиля в WordPress.

Мое имя в WordPress — Paul_Gross. Имя пользователя в Discourse — Paul_Gross. Когда я перехожу на страницу «Пользователи» в Discourse и ищу «system», я не вижу пользователя с именем «system».

Имя пользователя сайта — “system”.

Если вы перейдете на страницу Администрирование / Пользователи / Персонал, вы должны увидеть в списке пользователя с именем «system». Если вы не видите этого пользователя, возможно, он был удален или переименован.

Оно там есть. Но сейчас на странице подключения WP Discourse появляется сообщение «Вы не подключены к Discourse». Не совсем понятно почему…

Исправил это, но всё ещё получаю ошибку «Запрещено»…

Имеет ли пользователь, от имени которого вы пытаетесь опубликовать пост, права на публикацию тем в категории Discourse, куда вы публикуете пост? Пользователь, от имени которого публикуется пост, определяется именем пользователя Discourse, которое вы указали на своей странице профиля.

Попробуйте опубликовать новый пост на вашем сайте, чтобы проверить, связана ли проблема с этим конкретным постом?

Я полагаю, что пользователь — я, Paul_Gross, администратор и создатель темы на WordPress — имею права на публикацию в категории Research, которую я определил в Discourse. Я являюсь администратором с обеих сторон этой ситуации. Какие ещё могут быть причины для получения сообщения «запрещено»?

Кстати, спасибо за быстрый разбор этого вопроса. Мне сейчас нужно уйти от компьютера, поэтому я смогу отвечать с телефона, но для глубокого анализа мне нужен большой экран и клавиатура (это моя проблема, а не ограничение адаптивности Discourse)!

Пол

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

Отлично. Сделаем и отпишемся…

Привет, Саймон,

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

Пол

У нас в целом три блога в мультисайтовой установке, которые публикуются в одном и том же форуме Discourse. Два из трёх работают нормально без проблем, но один из них теперь выдаёт похожую ошибку «Forbidden», о которой упоминал @pgross ранее. Я пробовал предложенные здесь решения, но безрезультатно. Все посты публикуются одним и тем же пользователем, и всё работало нормально в течение последних нескольких месяцев до вчерашнего дня, так что я немного в тупике.

Можете ли вы найти какие-либо различия между тем, что происходит на сайте, где возникает ошибка «Forbidden», и другими сайтами? Например, публикуете ли вы в защищённую категорию на сайте, где возникает ошибка? Добавляете ли вы теги к темам, которые вы публикуете в Discourse? Если да, то возможно ли, что эти теги не разрешены в категории, в которую вы публикуете?

Включена ли у вас опция WP Discourse «Добавить рекомендуемые ссылки»? Эта опция находится на вкладке «Настройки публикации».

Привет, @simon! Все три блога — по сути, один и тот же блог, но на разных языках. Они настроены абсолютно одинаково, и насколько я вижу, различий нет. Мы не добавляем теги. Мы используем опцию «Добавить избранные ссылки».

Надеюсь, это поможет?

Редакция: Просто хотел добавить — я провёл тест с новой публикацией, и всё работает отлично, но конкретная публикация, которая не была отправлена, по-прежнему возвращает ошибку «Forbidden».

Не могли бы вы попробовать установить плагин Query Monitor – WordPress plugin | WordPress.org English (Canada) или аналогичный, а затем снова попытаться опубликовать сообщение? Это должно вывести подробное сообщение об ошибке относительно ответа, полученного от Discourse.

Редакция: вы публикуете в Discourse полный текст сообщения или только его отрывки?