منذ إطلاقنا Discourse Gamification قبل عام، كانت إحدى أكثر الميزات المطلوبة من خارطة الطريق لدينا هي إمكانية دمج Discourse Gamification مع أنظمة تحفيز خارجية. والأمثلة كثيرة:
-
التكامل مع برامج التحفيز الحالية في الشركات
-
القدرة على منح نقاط للأحداث التي تقع خارج Discourse، مثل الفعاليات الواقعية (IRL)، أو في أماكن أخرى عبر الإنترنت، مثل أن تكون عميلاً في مجتمع ما، أو شراء منتج.
-
القدرة على السماح للمستخدمين بتبديل نقاطهم مقابل سلع ترويجية (swag)، أو منتجات، أو مزايا.
اليوم، وفي الوقت المناسب للاحتفال بالذكرى السنوية الأولى للإضافة (plugin)، جعلنا كل ما سبق ممكنًا من خلال واجهة برمجة تطبيقات (API) كاملة للتعامل مع أحداث تسجيل النقاط المخصصة
.
يتيح هذا النظام الجديد للمسؤولين (admins):
-
منح المستخدمين حدث تسجيل نقاط مخصص.
-
منح المستخدمين أحداث تسجيل نقاط سلبية، لاستيعاب أحداث الاسترداد أو العقوبات.
-
تحديث وسرد الأحداث المخصصة التي تم إنشاؤها مسبقًا.
واجهة برمجة التطبيقات (API)
ستستغرق النقاط الممنوحة عبر واجهة برمجة التطبيقات ما يصل إلى 10 دقائق لتنعكس في إجمالي نقاط المستخدم للأحداث التي تم إنشاؤها بالتاريخ الحالي، وما يصل إلى 24 ساعة للأحداث التي تم إنشاؤها في الأيام العشرة الماضية. بالنسبة للأحداث التي تم إنشاؤها بتاريخ يسبق الأيام العشرة الماضية، تحتاج إلى تشغيل مهمة
rakeالخاصة بالملء الخلفي (backfill).
هناك 3 نقاط نهاية مختلفة لواجهة برمجة التطبيقات حاليًا.
سرد الأحداث (List Events)
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'
إنشاء حدث (Create Event)
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"
تحديث حدث (Update Event)
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"
}'
صيغة بديلة باستخدام 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"
