Я веду многопользовательский блог на WordPress. Как настроить публикацию, чтобы не заставлять всех авторов создавать учётные записи в Discourse? Стоит ли для решения этой проблемы использовать SSO между WordPress и Discourse?
Если вы хотите, чтобы авторы могли публиковать посты от своего имени в Discourse, им необходимо создать учётные записи в Discourse. SSO — хороший вариант для этого, но при включённом SSO пользователи смогут входить на ваш форум только через сайт WordPress. Возможно, это не то, что вам нужно.
Другой вариант — публиковать все посты из WordPress в Discourse под одним именем пользователя Discourse. Если пользователи оставят настройку имени пользователя Discourse пустой, посты будут публиковаться в Discourse под именем пользователя для публикации, которое вы указали на вкладке «Настройки подключения» плагина.
Интересно… Насколько я могу судить, ни у одного из моих авторов это не установлено. Когда я просматриваю профили пользователей, я не вижу опции для настройки имени пользователя в Discourse. Где я могу её найти?
Кроме того, я только что заметил, что в плагине Discourse для WordPress используется следующая настройка:
Удаляет поле «Имя Discourse» со страницы профиля пользователя WordPress.
Не отображать поле «Имя Discourse» — если SSO не включено, эта настройка приведёт к тому, что все сообщения, опубликованные в Discourse, будут публиковаться от имени «Имени для публикации».
Как я понимаю, вышеуказанная настройка заставит все сообщения публиковаться от имени пользователя, определённого в настройке «Имя для публикации».
Что я упускаю?
Спасибо. Я только что понял, что у меня было установлено значение Не отображать поле имени Discourse. Это должно было заставить все сообщения отображаться как имя пользователя при публикации.
Да, отключите это, если хотите, чтобы сообщения публиковались под собственным именем пользователя Discourse автора, которое вы, надеюсь, сможете настроить без проблем. (Некоторые темы, например Extra, запрещают редактирование имени пользователя, скрывая его на странице профиля.)
Отредактировано: Теперь я вижу, что заголовок этой темы — номер ошибки. Не уверен, что что-либо из сказанного мной поможет решить эту проблему.
Да, именно так это и должно работать. Можете ли вы публиковать сообщения со своего аккаунта из WordPress в Discourse?
Самая частая причина ошибки 403 при публикации сообщений в Discourse — неправильно установленное имя пользователя Discourse. Возможно, стоит отключить настройку «Не отображать поле имени Discourse» и проверить страницы профилей некоторых ваших авторов. Убедитесь, что поле «Имя пользователя Discourse» у авторов пустое. Оно находится в разделе «Контактная информация» на странице профиля пользователя.
Вскоре мы переместим поле «Имя пользователя Discourse» из раздела «Контактная информация», а также предоставим администраторам сайта возможность вручную устанавливать имя пользователя Discourse для их авторов, скрывая эту настройку от самих авторов. Это делается в целях безопасности — чтобы гарантировать, что на сайтах с несколькими авторами используется правильное имя пользователя Discourse.
Хорошо, именно этого я и ожидал.
Я думал, что проблема связана с несовпадением имен пользователей, но полагал, что при включении опции «Не отображать поле имени Discourse» это переопределит всё.
Похоже, упомянутое вами изменение будет действительно полезным.
Я только что попробовал опубликовать, отключив эту опцию, но получил ту же ошибку.
После отключения этой опции проверьте страницу своего профиля, чтобы убедиться, что поле «Имя пользователя Discourse» пустое.
Имена пользователей в Discourse для всех пользователей пусты.
Когда вы переходите на вкладку параметров подключения WP Discourse, видите ли вы сообщение «Вы подключены к Discourse»?
Для настроек «Ключ API» и «Имя пользователя для публикации» на вкладке параметров подключения вы используете ли ключ API «Все пользователи» вашего форума Discourse? Имя пользователя для публикации установлено в имя системного пользователя вашего сайта? Имя пользователя по умолчанию для системного пользователя — «system».
Да. Во вкладке параметров подключения я вижу сообщение «Вы подключены к Discourse». API-ключ предназначен для всех пользователей, а имя публикации — администратор форума Discourse. Имя пользователя не является системным пользователем «system».
Не могли бы вы попробовать изменить имя пользователя на ‘system’ (без кавычек), чтобы проверить, поможет ли это?
Я изменил имя пользователя на system, но получаю то же сообщение об ошибке.
«Произошла ошибка при публикации этого сообщения в Discourse».
Вот детали, отображаемые в письме с ошибкой:
Причина сбоя:
От Discourse был получен код ответа 403.
Запрещено
Проверьте следующее:
- автор правильно указал своё имя пользователя в Discourse
У кого-нибудь есть ещё идеи, как это решить?
Единственное, что я могу придумать, это создать новый API-ключ и ввести все данные заново.
Хм, это очень странно… Я использую NodeChef для хостинга Discourse. Не знаю, проблема ли это в их сборке или в настройках сервера. Как думаете?
Я пробовал менять ключи, но проблема осталась.
Спасибо за подробности о вашем хостинге. Я должен был спросить об этом. Возможно, проблема связана с их хостингом. Это не та проблема, с которой я сталкивался на нашем хостинге, на сайтах, размещенных на https://www.communiteq.com/, или на самохостинговых сайтах.
Если на вашем сайте WordPress доступен WP-CLI, самый простой способ отладить это — попытаться создать тему Discourse из консоли wp, используя те же учетные данные, что и в вашей конфигурации WP Discourse. Ответ на этот запрос даст некоторые подробности о проблеме.
Хорошо. Я попробую.
Я думал о настройке самохостинговой конфигурации на своём аккаунте AWS. Попробую и посмотрю, возникнут ли те же проблемы. Спасибо за помощь.
По какой-то причине публикация завершается ошибкой 403. И это не зависит от того, что я делаю.
Причина сбоя:
От Discourse был получен код ответа 403.
Запрещено
Проверьте следующее:
- автор правильно указал своё имя пользователя в Discourse
Вкладка «Подключение» показывает «подключено к Discourse». Настройка «Не отображать поле имени Discourse» в разделе публикации отключена. Я уже создал новый ключ API, чтобы убедиться в работоспособности подключения. Имя пользователя по умолчанию для системного пользователя — «system».
Я в тупике.
Буду благодарен за любую помощь.