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 へ通知を送信します。

以下の 2 種類の報酬を設定できます:

  1. バッジやグループメンバーシップなどのワンタイム報酬。これらの報酬は、ユーザーが支払った総額に基づいて付与されます。
  2. サブスクリプションティアに基づく月次グループメンバーシップ。ユーザーは、そのサブスクリプションティアの支払いを継続している限り、グループのメンバーであり続けます。グループメンバーシップは 1 ヶ月ごとに再評価されます。

これらの報酬に加え、最近受け取った支払いに基づいたダッシュボードを表示することもできます。


ダッシュボードの各セクションは、必要に応じて有効化および設定可能です。

このプラグインをインストールする前に支払われた支払いを登録するには、Ko-fi の CSV エクスポートをインポートすることもできます。

支払いが受け取られると、プラグインは Ko-fi 支払いで使用されたメールアドレスと Discourse のメールアドレスに基づいてユーザーと一致させます。これらのアドレスが一致しない場合、ユーザーはユーザー設定内の特別な Ko-fi ページから行った支払いを主張できます。また、取引を公開表示から非表示にする機能も提供しています。

設定

動作する Ko-fi アカウントが必要です。プラグインを通常の方法でインストールした後、プラグインの設定で Ko-fi ウェブフックトークン を設定し、Discourse インストール用のウェブフック URL を 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 に寄付ダッシュボードを有効化します。
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 プログレスバーテーマコンポーネント との連携を有効化します。目標の進捗が計算されると、このコンポーネントの現在の値と最大値の設定が更新されます。
kofi_leaderboard_count 0 より大きい場合、ダッシュボードにリーダーボードウィジェットを表示します。
kofi_leaderboard_days 過去何日間の支払いに基づいてリーダーボードを計算するかを指定します。
kofi_leaderboard_types リーダーボードの計算に使用される Ko-fi の支払いタイプ。

報酬設定

これらの設定に加え、Ko-fi プラグインの設定には「報酬」タブがあり、ワンタイム報酬とサブスクリプション報酬を設定できます。

サブスクリプション報酬の場合、Ko-fi で設定したティア名を入力する必要があります。Ko-fi でティア名を変更した場合は、Ko-fi 側でも更新する必要があります。Ko-fi は表示名のみを送信し、一意の ID は送信しないためです。

報酬の作成または変更時に、既存の支払いにこれらの報酬が付与されるように、支払いの再処理をリクエストできます。

管理

設定、ステータス、報酬タブに加え、Ko-fi プラグインの管理ページには以下のタブもあります:

  • 支払い – 受け取った Ko-fi 支払いの一覧。
  • アカウント – Ko-fi 支払いとユーザーのリンク。
  • インポート – Ko-fi 支払いの CSV エクスポート をインポートします。既に受け取った支払いをインポートする際に使用します。
  • 匿名化 – 指定されたメールアドレスで行われた支払いを完全に匿名化できます。
「いいね!」 2

Ko-fi は単一の通貨でのみ支払いの受領をサポートすることに注意してください。このプラグインによる計算では、通貨ではなく、受け取った支払い情報にある金額のみを考慮します。将来通貨を変更すると、さまざまな計算が破綻します。通貨変換は行われません。

現在は、この機能を当サイト上で処理するために、自己ホスト型の PHP スクリプトに依存しています。

貴社のプラグインを使用することで、それが必要なくなります。質問が不適切でないことを願っていますが、非公式プラグインについて伺いたいことがあります。このプラグインは長期的に維持される予定でしょうか?ご自身でも使用されていますか?

理論上、公開進捗バー(私のテーマコンポーネントに似たもの)の統合に関する PR に対して、反対されることはありますか?

私の理解では、ダッシュボードは登録メンバーがアクセスできますが、他の場所に追加できるウィジェットはないのでしょうか?

「いいね!」 1

私は自身の Discourse サイトでこのプラグインを使用しています(ただし、すべての機能を使っているわけではありません)。ESR(私が運用しているバージョン)と最新の Discourse リリースの両方に対して、プラグインのサポートを提供する予定です。これらのリリースは、プロジェクトセットアップで テストされています。バージョンが変更された場合、これらのテストは少なくとも週に一度実行されます。

現在、プラグインの Ruby 側のみが自動的にテストされています(ほぼすべての小さな部分)。JavaScript 側のテストセットの作成については、今後対応する予定です。

image

問題ありません。また、拡張ポイント(例:テーマコンポーネント用のプラグインアウトレットや、プラグイン用のイベントなど)を追加するための提案も歓迎します。

ダッシュボードはすべての訪問者が利用可能です。

Ko-fi ウィジェットを任意の場所に追加する機能は、あえて作成していません。これは、あなたの進捗バーコンポーネントと同様に、テーマコンポーネントを通じて実現可能だと考えています。kofi_account アカウント設定はクライアント側で利用可能であり、どのようなウィジェットにも十分対応できるはずです。

「いいね!」 1