Depuis le lancement de Discourse Gamification il y a un an, l’une des fonctionnalités les plus demandées de notre feuille de route a été la possibilité d’intégrer Discourse Gamification avec un système de gamification externe. Les exemples sont nombreux :
- Intégration avec les programmes de gamification existants dans les entreprises
- Possibilité d’attribuer des points pour des événements qui se produisent en dehors de Discourse, comme des événements IRL, ou ailleurs en ligne, comme être un client dans une communauté, ou acheter un produit.
- Possibilité de permettre aux utilisateurs d’échanger leurs points contre des produits dérivés, des produits ou des avantages.
Aujourd’hui, juste à temps pour le premier anniversaire du plugin, nous avons rendu tout cela possible avec une API complète pour gérer les événements de score personnalisés
.
Ce nouveau système permet aux administrateurs de :
- Attribuer aux utilisateurs un événement de score personnalisé
- Attribuer aux utilisateurs des événements de score négatifs, pour prendre en compte les échanges ou les pénalités
- Mettre à jour et lister les événements personnalisés précédemment créés
API
Les points attribués via l’API mettront jusqu’à 10 minutes à se refléter sur le score global d’un utilisateur pour les événements créés avec la date actuelle, et jusqu’à 24h pour les événements créés dans les 10 derniers jours. Pour les événements créés avec une date antérieure aux 10 derniers jours, vous devez exécuter la tâche rake de remplissage.
Il existe actuellement 3 points de terminaison d’API différents.
Lister les événements
curl http://example/admin/plugins/gamification/score_events.json -H "Api-Key: apikeyhere" -H "Api-Username: system"
Vous pouvez également lister les événements d’un utilisateur spécifique ou par date :
curl http://example/admin/plugins/gamification/score_events.json?user_id=1&date=2023-05-01 -H "Api-Key: apikeyhere" -H "Api-Username: system"
Créer un événement
jo -p user_id="13" date="2023-04-14" points="15" description="May 2023 Karaoke atendee" | curl --json @- -XPOST http://example/admin/plugins/gamification/score_events -H "Api-Key: apikeyhere" -H "Api-Username: system"
Mettre à jour un événement
jo -p id="1" points="25" description="May 2023 Karaoke atendee" | curl --json @- -XPUT http://example/admin/plugins/gamification/score_events -H "Api-Key: apikeyhere" -H "Api-Username: system"
