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

銀行での10年間の経験のせいかもしれませんが、ポイントの引き換えについて私が思い描いているのは、マイナスの値を持つカスタムイベントを発行することです。

たとえば、ユーザーがTシャツと引き換えにポイントを使用したいとしましょう。そのTシャツは10,000ポイントかかります。あなたの引き換えシステムでのフローは次のようになります。

  1. ユーザーが十分なポイントを持っているか確認します。
curl https://meta.discourse.org/u/falco.json -s | jq . | grep score
        "gamification_score": 89386,
  1. 「ポイント引き出し」イベントを発行します。
jo -p user_id="13" date="2023-04-14" points="-10000" description="T-Shirt Redeem - order #123" | curl --json @- -XPOST http://example/admin/plugins/gamification/score_events -H "Api-Key: apikeyhere" -H "Api-Username: system"

これはセマフォのようなものでラップする必要があるでしょう。これはそれらを使用する教科書的な例ですが、提案されたワークフローの概要は次のとおりです。

これは非常に新しい機能なので、提案されたワークフローが正しく機能しない場合はお知らせください。

ブラウザとAPIの両方で、私にとっては正常に動作しています。これは管理者エンドポイントなので、ブラウザ経由でログインした管理者であるか、OPで説明されているようにAPIキーを渡す必要があります。

「いいね!」 3