기존 WordPress 사용자를 Discourse로 가져오기

여러분 안녕하세요,

무언가를 놓치고 있는 건지 모르겠지만, 다음을 어떻게 구현할 수 있을까요?

  • 기존에 수백 명의 등록된 회원이 있는 WordPress 사이트.
  • WordPress를 SSO 제공자로 사용하는 자체 호스팅 Discourse 설치.

WordPress의 기존 사용자들을 모두 Discourse로 가져와야 합니다. 그래야 Discourse 알림에 접근하기 위해 먼저 WordPress 사이트에 로그인할 필요가 없거든요.

해당 사용자들은 기술에 익숙하지 않아서, 웹사이트에 먼저 로그인하도록 요청하는 것은 그들에게 너무 복잡합니다.

현재 그들은 이메일만으로 게시물을 통해 소통할 수 있는 Google Groups 공지판 시스템을 사용하느라, 새로 호스팅된 Discourse 내에서 스스로 계정을 설정하는 것을 안정적으로 하지 못할 것입니다.

좋은 아이디어가 있으시다면 정말 감사하겠습니다.

Discourse로 사용자들을 이전하려는 건가요, 아니면 Discord로 이전하려는 건가요?

WP Discourse 플러그인을 사용하여 WordPress를 Discourse의 SSO 제공자로 사용하고 있다면, 로그인 시 Discourse 사용자 생성 또는 동기화(Create or Sync Discourse Users on Login) 옵션을 활성화하면 원하는 결과를 얻을 수 있습니다. 사용자가 WordPress 사이트에 처음 로그인할 때 WordPress 사용자를 기반으로 Discourse 사용자가 생성됩니다.

@simon Discourse에 대해 죄송합니다.

해당 옵션은 활성화되어 있지만, 사용자가 Discourse에 생성되려면 반드시 로그인해야 하는 것은 원치 않습니다.
사용자들의 기술적 숙련도가 낮기 때문에, 사용자 개입 없이 대량으로 Discourse에 가져와야 합니다.
사용자의 대부분은 실제로 로그인하지 않을 것입니다. 그러나 그들은 이메일 회신을 통해 대화에 참여할 것입니다.

여러 가지 접근 방식이 있습니다. 프로그래밍을 조금 할 수 있다면, WordPress를 Discourse의 SSO 제공자로 사용하는 사이트에서 WP Discourse 플러그인이 제공하는 정적 함수들을 활용할 수 있습니다. 해당 함수들은 이 파일에 포함되어 있습니다: https://github.com/discourse/wp-discourse/blob/master/lib/utilities.php.

이를 사용하려면 모든 WordPress 사용자를 순회하며 각 사용자에 대해 다음을 호출해야 합니다:

$sso_params = \WPDiscourse\Utilities\Utilities::get_sso_params( $user );

\WPDiscourse\Utilities\Utilities::sync_sso_record( $sso_params );

첫 번째 줄의 $user 매개변수는 WordPress 사용자 객체여야 합니다.

Discourse의 속도 제한(rate limiting)에 유의해야 합니다. 초당 약 1회 요청으로 제한하는 것이 좋습니다. sync_sso_record 호출이 성공하면 Discourse 사용자가 반환됩니다.

좋아요, 감사합니다. 그리고 제가 프로그래밍에 조금만이라도 자신감이 없다면 어떻게 해야 하나요?

위에서 언급한 방법은 기존 사용자를 WordPress로 이전하는 가장 쉬운 방법일 수 있습니다. 예산이 있다면 Marketplace 카테고리에 주제를 만들어 해당 작업을 대신 해줄 사람을 찾을 수 있습니다.

예산이 없다면 사용자들이 WordPress 사이트에 로그인하도록 요청할 수 있습니다. WordPress나 Discourse에 절대 로그인하지 않을 사용자들이 많다면 접근 방식을 재고해볼 필요가 있을 수 있습니다.

@simon 감사합니다.
#marketplace에 게시했습니다.

도와주셔서 감사합니다.

상황에 따라 가장 쉬운 방법은 SSO를 사용하지 않고 Discourse에 사용자를 로그인시키는 것입니다. 그러면 WordPress에서 사용자 목록을 내보내고, 이메일 주소를 CSV 파일로 추출한 뒤, Discourse의 일괄 초대 기능을 사용하여 사용자를 포럼으로 초대할 수 있습니다. 초대 이메일을 커스터마이즈하여 사용자가 이메일 내 링크를 클릭하고 커뮤니티 가입에 동의해야 한다는 점을 알릴 수 있습니다. 이 과정을 완료하면 사용자는 이메일을 통해 자유롭게 커뮤니티에 참여할 수 있습니다.

기존 데이터를 가져오는 것이 좋겠습니다. 목록의 mbox 파일을 받을 수 있나요?