Seit wir vor einem Jahr Discourse Gamification eingeführt haben, war eine der am häufigsten gewünschten Funktionen auf unserer Roadmap die Möglichkeit, Discourse Gamification mit externen Gamification-Systemen zu integrieren. Beispiele hierfür 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-Veranstaltungen oder anderswo online, wie z. B. als Kunde in einer Community oder beim Kauf eines Produkts.
-
die Möglichkeit, Benutzern zu erlauben, ihre Punkte gegen Werbeartikel, Produkte oder Vorteile einzulösen
Heute, pünktlich zum ersten Jahrestag des Plugins, haben wir all dies mit einer vollständigen API zur Handhabung benutzerdefinierter Punktestandereignisse möglich gemacht
.
Dieses neue System ermöglicht es Administratoren:
-
Benutzern ein benutzerdefiniertes Punkteereignis zuzuweisen
-
Benutzern negative Punkteereignisse zuzuweisen, um Einlösungen oder Strafen zu berücksichtigen
-
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 dem Gesamtpunktestand eines Benutzers für Ereignisse, die mit dem aktuellen Datum erstellt wurden, widerzuspiegeln, 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
rake taskfür die Nachbefüllung ausführen.
Derzeit gibt es 3 verschiedene API-Endpunkte.
Ereignisse auflisten
curl https://\u003cexample_url\u003e/admin/plugins/gamification/score_events.json \
-H 'API-Key: \u003capi_key_here\u003e' \
-H 'API-Username: \u003capi_username_here\u003e'
Sie können auch bestimmte Benutzer- oder Datumereignisse auflisten:
curl https://\u003cexample_url\u003e/admin/plugins/gamification/score_events.json?user_id=1\u0026date=2023-05-01 \
-H 'API-Key: \u003capi_key_here\u003e' \
-H 'API-Username: \u003capi_username_here\u003e'
Ereignis erstellen
curl -X POST https://\u003cexample_url\u003e/admin/plugins/gamification/score_events.json \
-H 'API-Key: \u003capi_key_here\u003e' \
-H 'API-Username: \u003capi_username_here\u003e' \
-H "Content-Type: application/json" \
-d '{
"user_id": 13,
"date": "2023-04-14",
"points": 15,
"description": "May 2023 Karaoke attendee"
}'
Alternative Syntax mit jo:
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
curl -L -X PUT https://\u003cexample_url\u003e/admin/plugins/gamification/score_events.json?id=6 \
-H 'API-Key: \u003capi_key_here\u003e' \
-H 'API-Username: \u003capi_username_here\u003e' \
-H "Content-Type: application/json" \
-d '{
"user_id": 11,
"date": "2023-04-15",
"points": 25,
"description": "May 2023 keynote attendee"
}'
Alternative Syntax mit jo:
jo -p id="11" points="25" description="May 2023 Karaoke attendee" | curl --json @- -XPUT http://example/admin/plugins/gamification/score_events -H "Api-Key: apikeyhere" -H "Api-Username: system"
