Как интегрировать систему геймификации Discourse с внешней системой (обмен и начисление очков)

Возможно, это мое десятилетие опыта работы в банках, но я представляю выкуп баллов как создание пользовательских событий с отрицательным значением.

Например, предположим, что у вас есть пользователь, который хочет выкупить баллы за футболку, и эта футболка стоит 10 000 баллов. Процесс в вашей системе выкупа будет следующим:

  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. Это административная конечная точка, поэтому вам нужно быть авторизованным администратором в браузере или передать ключи API, как объясняется в первом сообщении.

3 лайка