منذ إطلاقنا تلعيب Discourse قبل عام، كان أحد أكثر الميزات طلبًا في خارطة الطريق لدينا هو إمكانية دمج تلعيب Discourse مع أنظمة التلعيب الخارجية. الأمثلة كثيرة:
- التكامل مع برامج التلعيب الحالية في الشركات
- القدرة على منح نقاط لحدوث أحداث خارج Discourse، مثل الفعاليات الواقعية (IRL)، أو في أماكن أخرى عبر الإنترنت، مثل كونك عميلًا في مجتمع ما، أو شراء منتج.
- القدرة على السماح للمستخدمين باستبدال نقاطهم بسلع ترويجية أو منتجات أو مزايا
اليوم، وفي الوقت المناسب لذكرى الذكرى السنوية الأولى للإضافة، جعلنا كل ما سبق ممكنًا من خلال واجهة برمجة تطبيقات (API) كاملة للتعامل مع أحداث التسجيل المخصصة
.
تتيح هذه النظام الجديد للمسؤولين:
- منح المستخدمين حدث تسجيل مخصص
- منح المستخدمين أحداث تسجيل سلبية، لاستيعاب أحداث الاستبدال أو العقوبات
- تحديث وقائمة الأحداث المخصصة التي تم إنشاؤها سابقًا
واجهة برمجة التطبيقات (API)
\u003e
النقاط الممنوحة عبر واجهة برمجة التطبيقات قد تستغرق ما يصل إلى ساعة لتظهر في إجمالي نقاط المستخدم للأحداث التي تم إنشاؤها بالتاريخ الحالي، وما يصل إلى 24 ساعة للأحداث التي تم إنشاؤها خلال آخر 10 أيام. بالنسبة للأحداث التي تم إنشاؤها بتاريخ أقدم من 10 أيام، يمكنك استخدام زر إعادة حساب النقاط في واجهة مستخدم التلعيب للمسؤول، أو تشغيل مهمة rake للتعبئة الخلفية: rake gamification_scores:backfill_scores_from[YYYY-MM-DD].
هناك 3 نقاط نهاية مختلفة لواجهة برمجة التطبيقات حاليًا.
قائمة الأحداث
تُرجع ما يصل إلى 100 حدث. يمكنك التصفية حسب id، وuser_id، و/أو date.
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'
يمكنك أيضًا سرد أحداث مستخدم أو تاريخ محدد:
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'
إنشاء حدث
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"
}'
صيغة بديلة باستخدام 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"
تحديث حدث
يتطلب نقطة نهاية التحديث id وpoints. يمكنك تحديث description بشكل اختياري. لاحظ أنه لا يمكن تغيير user_id وdate بعد الإنشاء.
curl -L -X PUT 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 '{
"id": 6,
"points": 25,
"description": "May 2023 keynote attendee"
}'
صيغة بديلة باستخدام 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"
