Discourse Ko-fi 연동

:information_source: 요약 Ko-fi의 기부/팁 시스템을 Discourse와 통합합니다. 기부에 대한 보상으로 배지 또는 그룹 멤버십을 제공합니다.
:hammer_and_wrench: 저장소 링크 https://github.com/magicball-network/discourse-kofi.git
:open_book: 설치 가이드 Discourse에 플러그인 설치 방법

기능

이 플러그인은 Ko-fi 계정을 Discourse 커뮤니티와 연결할 수 있게 해줍니다. 사용자는 Ko-fi를 통해 돈을 기부할 수 있으며, 이를 통해 배지나 그룹 멤버십과 같은 보상을 받을 수 있습니다. 또한 Ko-fi 구독 티어를 그룹 멤버십과 연결할 수도 있습니다.

이 플러그인은 Ko-fi 웹훅에 의존하며, 결제가 수신되면 Discourse에 알림을 보내는 역할을 합니다.

두 가지 종류의 보상을 설정할 수 있습니다:

  1. 배지와 그룹 멤버십과 같은 일회성 보상. 이러한 보상은 사용자가 지불한 총 금액에 기반합니다.
  2. 구독 티어에 기반한 월간 그룹 멤버십. 사용자는 해당 구독 티어를 계속 결제하는 한 그룹 멤버로 유지됩니다. 그룹 멤버십은 한 달 후 재평가됩니다.

이러한 보상 외에도 최근에 수신된 결제에 기반한 대시보드를 표시할 수 있습니다.


각기 다른 대시보드 섹션은 원하는 대로 활성화하고 설정할 수 있습니다.

Ko-fi의 CSV 내보내기를 가져와서 이 플러그인을 설치하기 전에 이루어진 결제를 등록할 수 있습니다.

결제가 수신되면 플러그인은 Ko-fi 결제에 사용된 이메일 주소와 사용자의 Discourse 이메일 주소를 기준으로 사용자를 매칭합니다. 이 주소가 동일하지 않은 경우, 사용자는 사용자 설정의 특수 Ko-fi 페이지를 통해 이루어진 결제를 주장(클레임)할 수 있습니다. 또한 사용자는 자신의 거래를 공개 표시에서 숨길 수도 있습니다.

설정

작동하는 Ko-fi 계정이 필요합니다. 플러그인을 일반적인 방식으로 설치한 후, 플러그인 설정에서 Ko-fi 웹훅 토큰을 구성하고 웹훅 URL을 Discourse 설치 경로로 설정해야 합니다: https://example.org/ko-fi/webhook

이 작업을 완료한 후, Ko-fi에서 테스트 메시지를 보내고 플러그인 상태 페이지에서 모든 것이 정상인지 확인할 수 있습니다.

웹훅을 활성화하거나 CSV를 가져오기 전에 보상을 구성하는 것이 좋습니다. 그렇지 않으면 현재 결제에 적용되도록 보상을 다시 처리해야 합니다.

설정 항목

설정 및 설정 설명 테이블 포함

이름 설명
kofi_webhook_token 웹훅 인증 토큰입니다. Ko-fi 계정에서 찾을 수 있습니다.
kofi_account Ko-fi 계정 이름입니다. 대시보드 설명과 Ko-fi 위젯에 사용됩니다. 이들을 활성화하는 경우에만 적용됩니다.
kofi_dashboard_enabled https://example.org/ko-fi에서 Discourse의 기부 대시보드를 활성화합니다.
kofi_dashboard_in_menu 메뉴에 대시보드로 이동하는 “기부” 메뉴 항목을 추가할지 여부를 정의합니다. 이 메뉴 항목을 커스터마이징하려면 이 옵션을 비활성화해야 합니다.
kofi_dashboard_topic_id 대시보드에 설명을 포함하는 토픽 ID입니다. 플러그인이 활성화될 때 “staff” 카테고리에 기본 메시지가 포함된 토픽이 생성됩니다.
kofi_dashboard_widget_enabled 대시보드의 Ko-fi 기부 위젯을 활성화합니다. kofi_account가 구성되어 있어야 합니다.
kofi_dashboard_count 0보다 크면, 최근 결제의 이 수량을 표시합니다.
kofi_dashboard_types 최근 결제에 포함할 Ko-fi 결제 유형입니다.
kofi_dashboard_anonymous_view 인증되지 않은 방문자에게 대시보드에 표시할 결제 세부 정보입니다.
kofi_dashboard_authenticated_view 인증된 멤버가 대시보드를 방문할 때 표시할 세부 정보입니다.
kofi_goal_amount 0보다 크면, 대시보드의 “목표” 위젯을 활성화합니다. 이는 주어진 목표 금액에 대한 진행 상황을 표시하는 데 사용할 수 있습니다.
kofi_goal_period 목표를 계산할 기간입니다.
kofi_goal_since “이후(since)” 기간을 선택한 경우, 목표 진행 상황을 계산하기 위한 타임스탬프입니다.
kofi_goal_show_amount 활성화되면 목표 위젯에 목표 금액도 표시됩니다. 그렇지 않으면 백분율만 표시됩니다.
kofi_goal_types 목표에 합산되는 Discourse 결제 유형입니다.
kofi_goal_progress_bar_integration Progress Bar Theme Component와의 통합을 활성화합니다. 목표 진행 상황이 계산되면 이 컴포넌트의 현재 값과 최대 값 설정이 업데이트됩니다.
kofi_leaderboard_count 0보다 크면, 대시보드에 리더보드 위젯을 표시합니다.
kofi_leaderboard_days 지난 몇 일 간의 결제를 기반으로 리더보드를 계산합니다.
kofi_leaderboard_types 리더보드 계산에 사용되는 Ko-fi 결제 유형입니다.

보상 구성

이러한 설정 외에도 Ko-fi 플러그인 설정에 보상(Rewards) 탭이 있으며, 여기서 일회성 보상과 구독 보상을 구성합니다.

구독 보상의 경우 Ko-fi에서 구성한 티어 이름을 입력해야 합니다. Ko-fi에서 티어 이름을 변경할 경우에도 해당 이름을 업데이트해야 합니다. Ko-fi는 고유한 ID가 아닌 표시 이름만 보내기 때문입니다.

보상을 생성하거나 변경할 때, 이러한 보상이 기존 결제에 부여되도록 결제를 다시 처리하도록 요청할 수 있습니다.

관리

설정, 상태, 보상 탭 외에도 Ko-fi 플러그인 관리자 페이지에는 다음 탭이 있습니다:

  • Payments(결제) – 수신된 Ko-fi 결제 목록.
  • Accounts(계정) – Ko-fi 결제와 사용자 간의 연결.
  • Import(가져오기) – Ko-fi 결제의 CSV 내보내기를 가져옵니다. 이미 수신된 결제를 가져오는 데 사용합니다.
  • Anonymize(익명화) – 특정 이메일 주소로 이루어진 결제를 완전히 익명화할 수 있습니다.
4개의 좋아요

Ko-fi는 단일 통화로만 결제 수신을 지원한다는 점에 유의하세요. 이 플러그인의 계산에는 결제 정보의 통화 종류가 아닌, 수령된 금액만 반영됩니다. 향후 통화를 변경하면 여러 계산이 혼란스러워질 수 있습니다. 통화 환산 기능은 제공되지 않습니다.

이 플러그인은 자체적으로 익명화를 지원하며, Discourse의 계정 익명화 기능에도 연결되어 있습니다. 따라서 Discourse에서 사용자를 익명화하면 이 플러그인이 추적하는 과거 및 미래의 모든 Ko-fi 데이터도 함께 익명화됩니다.

현재 제 사이트에서는 이 작업을 처리하기 위해 자체 호스팅된 PHP 스크립트에 의존하고 있습니다.

귀하의 플러그인을 사용하면 더 이상 그렇게 하지 않아도 됩니다. 제 질문이 불필요하게 느껴지지 않기를 바라며, 비공식 플러그인에 대해 묻는 것이 합리적이라고 생각합니다: 이 플러그인을 장기적으로 유지보수할 계획이 있나요? 직접 사용 중이신가요?

이론적으로, 공개된 진행 상황 표시줄(제 테마의 컴포넌트와 유사한 것)을 통합하기 위한 PR을 받아주실 의향이 있으신가요?

제 이해에 따르면, 대시보드는 등록된 멤버들이 접근할 수 있지만, 다른 곳에 추가할 수 있는 위젯은 없는 것 같습니다.

1개의 좋아요

저는 제 자신의 Discourse 사이트에서 이 플러그인을 사용하고 있습니다(단, 모든 기능을 사용하는 것은 아닙니다). ESR(제가 운영 중인 버전)과 최신 Discourse 릴리스 모두에 대해 플러그인을 지원할 예정입니다. 이 두 버전은 프로젝트 설정에서 테스트되고 있습니다. 해당 버전이 변경되면 최소 주 1회씩 테스트가 실행됩니다.

현재는 플러그인의 Ruby 쪽만 자동으로 테스트되고 있습니다(거의 모든 세부 부분까지). JavaScript 쪽의 테스트 세트 작성은 아직 해결해야 할 부분이지만, 결국에는 이를 수행할 계획입니다.

image

그것에 대해서는 문제가 없습니다. 확장 지점(예: 테마 컴포넌트를 위한 플러그인 아웃렛, 또는 플러그인을 위한 이벤트)을 추가하는 제안도 환영합니다.

대시보드는 모든 방문자에게 공개되어 있습니다.

ko-fi 위젯을 임의의 위치에 추가할 수 있는 기능을 의도적으로 만들지 않았습니다. 제 진행 표시줄 컴포넌트와 마찬가지로 테마 컴포넌트를 통해 이를 수행할 수 있다고 생각합니다. kofi_account 계정 설정은 클라이언트에서 사용 가능하며, 이는 모든 종류의 위젯에 대해 충분할 것입니다.

1개의 좋아요