Discourseのゲーミフィケーションを外部システム(ポイントの交換と付与)と連携する方法

クレイジーなアイデアがあるのですが、WooCommerceでバーチャルウォレット(ポイントベース)を使用しており、それをDiscourseのゲーミフィケーションポイントと同期させたいと考えています。しかし、API(cronやWCでのユーザーアクション時などに毎回ポーリングする)だけでは重すぎる気がします。Discourseで得たポイントでWooCommerceのバーチャルウォレットを更新するために、Webhookを作成していただけますか?ガイドスキーマを添付します。

DiscourseのAPIは比較的最近のもので(Webhookもまだない)、複雑になる可能性があることは承知していますが、ユースケースを提示するだけで、アイデアを検証していただければと思います。

ゲーミフィケーションは5分ごとに再計算されるため、cronジョブのような同期が非常に適切だと思います。

「いいね!」 1

なるほど、そのアプローチは考えていませんでした…つまり、n8n(コスト削減のために自分でホストする)を使用して、5分または10分ごとに新しいポイントを照会するcronトリガーを作成できます(すべてのユーザーを照会するにはどうすればよいですか?またはイベントに対して行いますか?)…もちろん、両方のプラットフォームでスコアが同期されていない短い時間があります…

それを考えていたのですが、ゲーミフィケーションプラグインでイベントによって情報(API経由で問い合わせる必要なし)を送信するWebhookを作成できれば、例えばアクティブユーザーが200人いる場合に、5分ごとにAPIを200回問い合わせる必要がなくなると考えました(デフォルトでDiscourseはWebhookを許可しています)。これは、Discourseがポイントの主なソースであり(より頻繁に更新される)、Discourseの変更に合わせてバックグラウンドで即座に同期を更新できるため重要です。

@Falco
イベントを削除するAPIを追加する予定はありますか?よろしくお願いします。

「いいね!」 1

追加したいのですが、まだ計画されていません。現時点では、その値を0に更新できます。

「いいね!」 2

@Falcoさん、ありがとうございます。
イベントによっては、IDにマイナスポイントが付く可能性があるということでしょうか?
例えば、競技イベントで負けた場合など。

「いいね!」 1

はい、マイナススコアを付けることもできます。これは、ポイントをギフトと交換したり、ペナルティを適用したりするイベントに役立ちます。

「いいね!」 1

遅くなりましたが、特定のポイント取引を「支出」としてリーダーボードのランクにカウントされないようにマークする方法はありますか?他の真のマイナスポイント(投票/フラグ、上記で提案されたAPIイベントなど、「ラダー」イベントでの「敗北」)をリーダーボードにカウントしたいと思います。

例:

  • アクティビティを通じて10,000ポイントを蓄積し、リードする。やった!
  • 10,000ポイントを派手な景品に費やし、「支出可能」残高が0ポイントになり、クエリは10,000 - 10,000と合計される。
    • しかし、リーダーボードのトップにはまだいるべき。
  • ラダーゲームで2,000ポイントを失い、リーダーボードに8,000ポイントと表示される。リードを失う…支出可能残高はマイナス2,000。
「いいね!」 1

@Falcoさん、こんにちは。

イベントのポイントを編集した後、ID全体のポイントは再計算されますか?
されていないようです。これは予期された動作でしょうか?

OPの警告はそれをカバーしています。UI全体で合計スコアをキャッシュするため、編集後はキャッシュの更新後にのみ反映されます。最近のイベントではキャッシュは自動的に更新されますが、10日以上前のイベントでは、期間のスコア更新をトリガーする必要があります。

「いいね!」 2

7件の投稿が新しいトピックに分割されました:Gamification外部イベントAPIにbulk_createを追加

APIキーのスコープをゲーミフィケーションプラグインのみに限定することは可能でしょうか?

APIキー管理画面で、キーを ...admin/plugins/gamification/score_events に限定するオプションが見つかりません。

また、リーダーシップ層は、これに真にグローバルなAPIキーが必要であることに懐疑的です。

「いいね!」 1

おっしゃる通りだと思います。要求されるにつれて、より多くのスコープが追加されるようです。セルフホストの場合は、カスタムプラグインを使用できます。PRを送信したり、#featureリクエストとして投稿したりできます。エンタープライズ顧客の場合は、リーダーシップに依頼してもらうことができます。:wink:

うーん。プラグインでカスタムAPIスコープを追加することが可能かどうか(特に、あるプラグインが別のプラグインのためにAPIスコープを追加する場合)が気になります。可能だと思いますが、そのような例は見たことがありません。

API専用のユーザーを作成するだけで、少なくともその方法で追跡できるようになるかもしれません。

「いいね!」 1

これって起こったことありますか?

CC: @Falco

プログラミング初心者として、投稿の内容を理解しようと一生懸命努力しましたが、まだかなり難しいです……この機能は「有料閲覧」と似ていますか?これは従来のフォーラムで非常によくある機能で、ユーザーはイベント(毎日のチェックイン、投稿、返信など)を通じてポイントを獲得し、その後、フォーラムの一部の投稿では、全コンテンツを閲覧するためにポイントの支払いをユーザーに要求します。従来のフォーラム(Discuzなど)では、ポイントの獲得とポイントの控除の両方の操作が自動化されています。今のところ理解している限りでは、ゲーミフィケーション(gamification)は「ポイント獲得」の部分を処理できますが、「ポイント控除」の操作には管理者が手動でAPI呼び出しを行う必要がありますか?これは個人フォーラムにとっては難しすぎます。私の理解では、プログラミングの知識があまりない状態でAPIを無謀に操作すると危険を伴い、コミュニティ全体が崩壊する可能性さえあります……:sob:

この「有料閲覧」機能をスタンドアロンのプラグインとして実装することは可能ですか?あるいは、誰かにカスタマイズを依頼する場合、大まかにいくらくらい費用がかかるでしょうか?