如何将Discourse游戏化与外部系统集成(兑换和奖励积分)

也许是我在银行工作的十年的经验,但我设想的积分兑换方式是发出负值的自定义事件。

例如,假设有一个用户想兑换一件 T 恤,而这件 T 恤需要 10k 积分。您的兑换系统的流程将是:

  1. 检查用户是否有足够的积分:

    curl https://meta.discourse.org/u/falco.json -s | jq . | grep score
        "gamification_score": 89386,
    
  2. 发出“积分提现”事件

    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 个赞