WP Discourse를 Discourse에 연결하기

WordPress Discourse 플러그인을 설치한 후, 이를 Discourse에 연결해야 합니다. 준비가 되었다면 아래 짧은 영상을 시청하시거나 아래 설명을 따르세요.

다음 단계

플러그인이 연결되면, 설정하려는 기능을 설명하는 토픽으로 이동하세요:


설명서

단계

WP Discourse 플러그인 설정의 Connection(연결) 탭을 보고 있을 때, 페이지 상단에는 항상 현재 Discourse에 연결되어 있는지 여부를 알려주는 알림이 표시됩니다. 연결을 설정하려면 다음을 입력하세요:

  1. Discourse URL 설정 필드에 포럼의 URL을 입력하세요.

  2. Publishing Username(게시 사용자 이름) 설정을 확인하세요. 변경할 특별한 이유가 없다면 "system"으로 유지하세요. 이 값을 변경하는 경우, 이는 반드시 Discourse의 관리자 사용자 이름이어야 합니다. 사용자의 아바타를 클릭하면 이름 아래에 사용자 이름을 찾을 수 있습니다.

  3. WordPress용 Discourse API 키를 생성하세요:

    1. Discourse 관리자 패널(포럼 내)로 이동하여 "API"를 클릭하세요.

    2. 다음 설정으로 새 키를 생성하세요:

      • Description(설명): 이 키의 용도가 명확히 드러나는 라벨을 입력하세요.
      • User Level(사용자 수준): “All Users”(모든 사용자)를 선택하세요.
      • Scope(범위): “Global”(전역)을 선택하세요.
    3. 화면에 표시되는 키를 복사하고 “Continue”(계속)를 클릭하세요.

  4. 생성된 API 키를 WP Discourse의 API Key 설정에 붙여넣으세요.

이 설정을 모두 채운 후 ‘Save Options’(옵션 저장) 버튼을 클릭했는지 확인하세요. 모든 것이 올바르게 구성되면 페이지 상단에 “You are connected to Discourse”(Discourse에 연결되었습니다)라는 알림이 표시됩니다.

멀티사이트(Multisite)

WP Discourse 플러그인에는 하나의 Discourse 포럼이 여러 WordPress 네트워크에 연결되는 경우를 위한 멀티사이트 구성 옵션이 있습니다. 이 옵션은 네트워크의 메인 사이트 Connection 설정 탭에서 사용할 수 있습니다.

이를 선택하면 플러그인의 일부 설정을 네트워크 전체(모든 연결 옵션, Webhook 옵션, DiscourseConnect Secret Key, Enable DiscourseConnect 설정)에 적용할 수 있습니다. 이 설정을 활성화하면 WordPress에서 Discourse로 게시물이 게시될 때 Discourse의 topic_ids와 WordPress의 blog_ids를 연관시키기 위해 사용되는 추가 데이터베이스 테이블이 생성됩니다.

멀티사이트에서 지원되지 않는 기능

WordPress를 DiscourseConnect 클라이언트로 사용하는 것은 WordPress 멀티사이트에서 지원되지 않습니다.

세분화된 API 키 (Granular API Key) (new :sparkles:)

이제 WP Discourse 플러그인을 위한 세분화된(Granular) API 키를 생성할 수 있습니다. 세분화된 API 키는 가까운 미래에 WP Discourse를 Discourse에 연결하는 표준 방식이 될 것입니다.

세분화된 키 사용 방법

세분화된 키를 사용하는 방법은 다음과 같습니다:

  1. 먼저 플러그인 버전이 2.4.3이고, Discourse의 tests-passed 브랜치에서 최신 버전이 설치되어 있는지 확인하세요. WP Discourse의 세분화된 API 키는 아직 Discourse stable에서 지원되지 않습니다.

  2. Discourse 관리자 대시보드의 API 패널로 이동하여 “All Users” 키를 생성하되, Scope(범위)를 “Granular”(세분화된)로 설정하세요.

  3. Scope 목록 하단에서 WordPress용 scope를 찾을 수 있습니다. “Publishing”(게시) scope(현재 필수)와 WP Discourse 플러그인에서 사용 중인 기타 기능에 대한 scope를 선택한 후 “Save”(저장)를 클릭하세요.

  4. 이제 WP Discourse의 API Key 설정에서 기존 키를 새 세분화된 키로 교체하고 설정을 저장하세요.

WP Discourse 설정을 저장하면 정상적인 “You are connected to Discourse!”(Discourse에 연결되었습니다!) 메시지가 표시되어야 합니다.

“You are not connected to Discourse…”(Discourse에 연결되어 있지 않습니다…)라고 표시된다면 scope가 올바르지 않을 수 있습니다. 플러그인은 현재 활성화된 기능과 API 키의 scope를 비교합니다. scope가 부족하면 연결되지 않은 것으로 간주됩니다. 연결 로그를 활성화하고 Logs 뷰어에서 오류 메시지를 확인하면 누락된 scope를 확인할 수 있습니다.

WP Discourse Scope

WP Discourse 플러그인을 위한 scope는 4가지가 있습니다:

  1. Publishing(게시). 이 scope는 WordPress에서 Discourse로 게시물을 게시할 수 있게 합니다. 게시물을 게시하지 않더라도(예: DiscourseConnect만 사용) 이 scope는 필수입니다. 모든 기능이 사용하는 기능성을 포함하고 있기 때문입니다. 이는 미래에 분리되어 모든 scope가 선택적으로 변경될 예정입니다.

  2. Commenting(댓글). 이 scope는 Discourse에 게시된 게시물에 대한 답글을 WordPress에서 댓글로 표시할 수 있게 합니다.

  3. DiscourseConnect. 이 scope는 DiscourseConnect(모든 구성)를 사용할 수 있게 합니다.

  4. Utilities(유틸리티). 이 scope는 플러그인에서 사용할 수 있는 특정 유틸리티 함수에 필요합니다. 플러그인과 상호 작용하는 커스텀 코드가 있다면, 필요하지 않다는 확신이 없는 한 이 scope를 활성화해야 합니다.

왜 세분화된 키를 사용해야 하는가?

세분화된 키를 사용하는 주된 이유는 보안입니다. 전역(Global) API 키는 해당 키를 가진 사람이 Discourse에서 관리자처럼 행동할 수 있게 합니다. 이는 Discourse의 보안이 WordPress의 보안에 의존한다는 것을 의미합니다. 세분화된 키는 훨씬 권한이 적으며, 활성화한 scope로 제한됩니다.

8개의 좋아요

WordPress에서 게시물을 업데이트할 때 관련 Discourse 게시물이 업데이트되지 않는 문제가 발생하고 있습니다. 로그에서 다음과 같은 오류가 표시됩니다.

ERROR:
publish.ERROR: update_post.post_error {“wp_title”:"title … ",“wp_author_id”:“2205402”,“wp_post_id”:3179224,“response_message”:“You are not permitted to view the requested resource. The API username or key is invalid.”,“http_code”:403}

현재 WP Discourse를 Discourse에 연결하기 위해 “Wordpress Publishing” 및 “Wordpress Commenting” 범위를 가진 Granular 키를 사용하고 있습니다. 이 문제에 대해 도움을 주실 수 있는 분 계신가요?

안녕하세요, @deepak_dhamde. 문제가 발생해 죄송합니다. 오늘 여행 중이지만, 내일 첫 일과로 문제를 재현해 보고 다시 연락드리겠습니다.

1개의 좋아요

안녕하세요 @deepak_dhamde, 사용 중인 스코프로 세밀한 키를 설정하는 과정을 녹화한 영상을 올렸습니다. 혹시 다른 방식으로 진행하고 계신지 검토해 주시고 알려주시면 감사하겠습니다.

@angus님, 늦게 답변드려 죄송합니다.

Granular Key를 생성하기 위해 동일한 절차를 따르고 있지만, 로그에서 여전히 동일한 403 오류가 발생합니다. 워드프레스 게시물을 업데이트할 때 discourse의 관련 주제가 업데이트되지 않습니다.

오류 내용:

[2024-09-16 06:51:28] publish.ERROR: update_post.post_error {“wp_title”:“Testing update post feature on staging site”,“wp_author_id”:“2168699”,“wp_post_id”:3175772,“response_message”:“You are not permitted to view the requested resource. The API username or key is invalid.”,“http_code”:403}

안녕하세요, @deepak_dhamde.

설정 방식이나 환경에서 작은 차이가 있을 가능성이 큽니다. 더 많은 정보가 없다면 그 차이를 찾기가 어렵습니다. 다음 방법 중 하나로 진행해 볼 수 있습니다:

  1. 환경에 대한 접근 권한을 부여해 주시면(기밀 유지 계약(NDA) 서약에 기꺼이 동의하겠습니다) 확인해 볼 수 있습니다. 또는
  2. 방금 제가 수행한 것과 동일한 작업을 수행하는 모습을 영상으로 녹화하여 비공개로 보내 주실 수 있습니다. 또는
  3. 다시 한 번 확인해 보시고 다음 사항들을 고려해 보십시오:
    • Discourse와 WordPress가 최신 버전으로 업데이트되어 있습니까?
    • 정상적으로 작동하는 “Global” 키를 생성할 수 있습니까?
    • 팀의 다른 구성원에게 동일한 절차를 수행해 보라고 요청해 보셨습니까? (때로는 새로운 시각이 새로운 것을 발견하기도 합니다)
    • WP Discourse 로그 뷰어의 “meta” 파일(즉, WordPress 환경)을 공유해 주시면 눈에 띄는 사항이 있는지 확인해 드리겠습니다.

안녕하세요 @angus,

새로운 Granular 키를 생성하고, 영상에서 언급하신 절차를 따라 Post 범위에서 편집을 활성화한 결과 정상 작동하기 시작했습니다. 이렇게 인내심 있고 친절하게 도와주셔서 정말 감사합니다.

1개의 좋아요

4개의 게시글이 새 주제로 분리되었습니다: Connecting WP Discourse to a local Discourse Instance running a specific version