Seit der Einführung von Discourse Gamification vor einem Jahr war eine der am häufigsten nachgefragten Funktionen auf unserer Roadmap die Möglichkeit, Discourse Gamification mit externen Gamification-Systemen zu integrieren. Beispiele gibt es viele:
-
Integration in bestehende Gamification-Programme in Unternehmen
-
Möglichkeit, Punkte für Ereignisse zu vergeben, die außerhalb von Discourse stattfinden, wie z. B. IRL-Events oder anderswo online, wie z. B. die Rolle als Kunde in einer Community oder der Kauf eines Produkts.
-
die Möglichkeit, Benutzern zu gestatten, ihre Punkte gegen Swag, Produkte oder Vorteile einzulösen
Heute, pünktlich zum ersten Jahrestag des Plugins, haben wir all dies mit einer vollständigen API zur Verwaltung benutzerdefinierter Scoring-Ereignisse möglich gemacht
.
Dieses neue System ermöglicht es Administratoren:
-
Benutzern ein benutzerdefiniertes Score-Ereignis zuzuweisen
-
Benutzern negative Score-Ereignisse zuzuweisen, um Einlösungs- oder Strafereignisse zu ermöglichen
-
Zuvor erstellte benutzerdefinierte Ereignisse zu aktualisieren und aufzulisten
API
Punkte, die über die API vergeben werden, benötigen bis zu 10 Minuten, um sich auf die Gesamtpunktzahl eines Benutzers auszuwirken, wenn die Ereignisse mit dem aktuellen Datum erstellt wurden, und bis zu 24 Stunden für Ereignisse, die in den letzten 10 Tagen erstellt wurden. Für Ereignisse, die mit einem Datum erstellt wurden, das weiter als 10 Tage zurückliegt, müssen Sie den Backfill-Rake-Task ausführen.
Derzeit gibt es 3 verschiedene API-Endpunkte.
Ereignisse auflisten
curl http://example/admin/plugins/gamification/score_events.json -H "Api-Key: apikeyhere" -H "Api-Username: system"
Sie können auch spezifische Benutzer- oder Datumsereignisse auflisten:
curl http://example/admin/plugins/gamification/score_events.json?user_id=1&date=2023-05-01 -H "Api-Key: apikeyhere" -H "Api-Username: system"
Ereignis erstellen
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"
Ereignis aktualisieren
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"
