Подключение WP Discourse к Discourse

После установки плагина WP Discourse необходимо подключить его к вашему Discourse. Когда будете готовы, посмотрите это короткое видео или следуйте инструкциям ниже.

Следующий шаг

После подключения плагина перейдите к теме, описывающей функцию, которую вы хотите настроить:


Инструкции

Шаги

Когда вы находитесь на вкладке Connection (Подключение) настроек плагина WP Discourse, в верхней части страницы всегда будет отображаться уведомление о том, подключен ли плагин к вашему Discourse. Для установления соединения введите:

  1. Введите URL вашего форума в поле настроек Discourse URL.

  2. Проверьте настройку Publishing Username (Имя пользователя для публикации). Если у вас нет конкретной причины изменить её, оставьте значение «system». Если вы измените это имя, оно должно соответствовать имени пользователя администратора в вашем Discourse. Имя пользователя можно найти под его именем при нажатии на аватар.

  3. Создайте API-ключ Discourse для WordPress:

    1. Перейдите в панель администратора Discourse (в вашем форуме Discourse) и нажмите «API».

    2. Создайте новый ключ со следующими параметрами:

      • Описание: введите метку, которая четко указывает назначение этого ключа.
      • Уровень пользователя: выберите «All Users» (Все пользователи).
      • Область действия (Scope): выберите «Global» (Глобально).
    3. Скопируйте ключ, отображаемый на экране, и нажмите «Continue» (Продолжить).

  4. Вставьте API-ключ в настройку API Key в WP Discourse.

После заполнения этих настроек обязательно нажмите кнопку «Save Options» (Сохранить параметры). Если всё настроено правильно, в верхней части страницы должно появиться уведомление «You are connected to Discourse» (Вы подключены к Discourse).

Мультисайт

Плагин WP Discourse имеет опцию «Multisite Configuration» (Конфигурация мультисайта) для случаев, когда один форум Discourse подключен к сети из нескольких сайтов WordPress. Эта опция доступна на вкладке настроек подключения главного сайта сети.

Её выбор позволяет использовать некоторые настройки плагина для всей сети (все параметры подключения, параметры Webhook, секретный ключ DiscourseConnect и настройка включения DiscourseConnect). Включение этой настройки создаст дополнительную таблицу базы данных, используемую для сопоставления идентификаторов тем Discourse с идентификаторами блогов WordPress при публикации постов из WordPress в Discourse.

Функции, не поддерживаемые в режиме мультисайта

Использование WordPress в качестве клиента DiscourseConnect не поддерживается в WordPress Multisite.

Тонкий (Granular) API-ключ (новое :sparkles:)

Теперь вы можете создать тонкий (granular) API-ключ для плагина WP Discourse. Тонкие API-ключи в ближайшем будущем станут стандартным способом подключения WP Discourse к Discourse.

Как использовать тонкий ключ

Вот как можно использовать тонкий ключ:

  1. Сначала убедитесь, что у вас установлена версия плагина 2.4.3 и последняя версия Discourse на ветке tests-passed. Тонкие API-ключи WP Discourse пока не поддерживаются в стабильной версии Discourse (stable).

  2. Перейдите в панель API в панели администратора Discourse и создайте новый ключ «All Users» (Все пользователи), но с областью действия «Granular» (Тонкая).

  3. В нижней части списка областей действия (Scopes) вы найдете области для WordPress. Выберите область «Publishing» (Публикация) (в настоящее время обязательная) и области для любых других функций, которые вы используете в плагине WP Discourse, затем нажмите «Save» (Сохранить).

  4. Теперь замените ваш старый ключ в настройке API Key в WP Discourse на новый тонкий ключ и сохраните настройки.

После сохранения настроек WP Discourse вы должны увидеть обычное сообщение «You are connected to Discourse!» (Вы подключены к Discourse!).

Если вы видите сообщение «You are not connected to Discourse…» (Вы не подключены к Discourse…), возможно, ваши области действия (scopes) указаны неверно. Плагин сравнивает области действия вашего API-ключа с включенными функциями. Если областей действия недостаточно, он будет считать, что подключение отсутствует. Вы можете увидеть, каких областей не хватает, включив логи подключения и просмотрев сообщения об ошибках в просмотрщике логов.

Области действия (Scopes) WP Discourse

Для плагина WP Discourse существует четыре области действия:

  1. Publishing (Публикация). Эта область позволяет публиковать посты из WordPress в Discourse. Она обязательна, даже если вы не публикуете посты (например, используете только DiscourseConnect), так как включает функциональность, используемую всеми функциями. В будущем она будет отделена, что сделает все области действия необязательными.

  2. Commenting (Комментирование). Эта область позволяет отображать ответы на посты, опубликованные в Discourse, в WordPress в виде комментариев.

  3. DiscourseConnect. Эта область позволяет использовать DiscourseConnect (в любой конфигурации).

  4. Utilities (Утилиты). Эта область необходима для определенных вспомогательных функций, доступных в плагине. Если у вас есть любой пользовательский код, взаимодействующий с плагином, вам следует включить эту область, если вы не уверены, что она вам не нужна.

Зачем использовать тонкий ключ?

Основная причина использования тонкого ключа — безопасность. Глобальный API-ключ позволяет любому, кто его имеет, действовать как администратор в вашем Discourse. Это означает, что безопасность вашего Discourse зависит от безопасности вашего WordPress. Тонкий ключ гораздо менее мощен, так как ограничен теми областями действия, которые вы для него включили.

8 лайков

Мы столкнулись с проблемой: при обновлении постов в WordPress связанные посты в Discourse не обновляются. В логах мы видим следующую ошибку.

ОШИБКА:
publish.ERROR: update_post.post_error {“wp_title”:"title … ",“wp_author_id”:“2205402”,“wp_post_id”:3179224,“response_message”:“У вас нет прав для просмотра запрошенного ресурса. Имя пользователя или ключ API недействительны.”,“http_code”:403}

Мы используем гранулярный ключ для подключения WP Discourse к Discourse с областями применения “Wordpress Publishing” и “Wordpress Commenting”. Кто-нибудь, пожалуйста, помогите нам с этим?

Привет, @deepak_dhamde! Мне жаль, что у вас возникла проблема. Сегодня я в дороге, но постараюсь воспроизвести вашу проблему и отвечу вам завтра с самого утра.

1 лайк

Привет, @deepak_dhamde! Я записал видео, в котором показываю, как настроить детализированный ключ с теми же областями доступа, которые вы используете. Посмотрите, пожалуйста, и дайте знать, если вы делаете что-то иначе.

Привет, @angus, извините за поздний ответ.
Мы следуем той же процедуре для генерации Granular Key, но в логах по-прежнему видим ту же ошибку 403. При обновлении постов в WordPress связанные темы в Discourse не обновляются.

ОШИБКА:

[2024-09-16 06:51:28] publish.ERROR: update_post.post_error {“wp_title”:“Тестирование функции обновления поста на тестовом сайте”,“wp_author_id”:“2168699”,“wp_post_id”:3175772,“response_message”:“У вас нет прав для просмотра запрошенного ресурса. Имя пользователя или ключ API недействительны.”,“http_code”:403}

Привет, @deepak_dhamde.

Вероятно, есть небольшие различия в том, как вы настраиваете это, или в вашей среде. Мне сложно найти это различие без дополнительной информации. Вот несколько вариантов, как мы можем двигаться дальше:

  1. Вы можете предоставить мне доступ к вашей среде (я готов подписать NDA), чтобы я мог взглянуть;
  2. Вы можете записать видео, как вы выполняете те же действия, что и я только что (отправьте его мне в личном порядке);
  3. Или вы можете еще раз проверить и учесть следующие факторы:
    • Актуальны ли ваши Discourse и WordPress?
    • Можете ли вы создать рабочий «глобальный» ключ?
    • Пробовали ли вы поручить тем же действиям другим членам вашей команды (иногда свежий взгляд замечает что-то новое)?
    • Поделитесь со мной «метафайлом» в вашем просмотрщике логов WP Discourse (то есть вашей среде WordPress), и я посмотрю, не бросится ли мне что-то в глаза.

Привет, @angus,
Мы создали новый детализированный ключ, следовали процедуре, которую вы упомянули в видео, включили редактирование в рамках поста, и всё заработало. Большое спасибо за ваше терпение и поддержку.

1 лайк

4 сообщения были перенесены в новую тему: Подключение WP Discourse к локальному экземпляру Discourse, работающему на конкретной версии