واجهة برمجة تطبيقات ديسكورس (Discourse API)
يرجى الاطلاع على موقع وثائق واجهة برمجة تطبيقات ديسكورس (Discourse API Documentation) للحصول على معلومات مفصلة:
https://docs.discourse.org
المصادقة (Authentication)
يجب أن تستخدم طلبات واجهة برمجة التطبيقات المصادقة المستندة إلى رأس HTTP (HTTP header). قم بتمرير مفتاح واجهة برمجة التطبيقات (Api-Key) واسم المستخدم لواجهة برمجة التطبيقات (Api-Username) كرؤوس HTTP. لا يتم دعم المصادقة عبر معلمات الاستعلام (query parameters) أو نص الطلب (request body) (تمت إزالة هذا في أبريل 2020). يرجى الاطلاع على مثال طلب cURL أدناه.
نقاط النهاية الوحيدة لواجهة برمجة التطبيقات التي تستمر في دعم بيانات الاعتماد في معلمات الاستعلام هي الطلبات إلى خلاصات RSS، ونقطة نهاية مستقبِل البريد (Mail Receiver endpoint)، ومسارات ICS.
يمكن تعيين Content-Type إلى “application/x-www-form-urlencoded”، أو “multipart/form-data”، أو “application/json”.
إليك مثال لطلب POST عبر cURL:
curl -X POST "http://127.0.0.1:3000/categories" \
-H "Content-Type: multipart/form-data;" \
-H "Api-Key: 714552c6148e1617aeab526d0606184b94a80ec048fc09894ff1a72b740c5f19" \
-H "Api-Username: discourse1" \
-F "name=89853c20-4409-e91a-a8ea-f6cdff96aaaa" \
-F "color=49d9e9" \
-F "text_color=f0fcfd"
إليك مثالًا لما يبدو عليه [موقع وثائق واجهة برمجة التطبيقات] (https://docs.discourse.org ):
استهلاك واجهة برمجة التطبيقات (Consuming the API)
يمكنك استهلاك واجهة برمجة التطبيقات باستخدام أوامر cURL، ولكننا نوصي باستخدام جوهرة [discourse_api] (GitHub - discourse/discourse_api: Ruby API for Discourse · GitHub ) حتى تتمكن من استخدام Ruby.
\u003cdiv data-theme-toc="true"\u003e \u003c/div\u003e
إذًا، أنت ترغب في استخدام واجهة برمجة تطبيقات ديسكورس (Discourse API) ؟ ممتاز! لنبدأ.
إعداد بيئة تطوير ديسكورس
قم بإعداد بيئة تطوير ديسكورس باستخدام دليل ويندوز (Windows) أو ماك أو إس (macOS) أو أوبونتو (Ubuntu) .
استنساخ مكتبة ديسكورس البرمجية لواجهة برمجة التطبيقات (Discourse API Gem)
الآن بعد أن قمت بإعداد بيئة تطوير ديسكورس، يجب أن يكون لديك Git و Ruby مثبتين بالفعل على نظامك. يمكنك تثبيت مكتبة ديسكورس البرمجية لواجهة برمجة التطبيقات عن…
الهندسة العكسية لنقاط نهاية واجهة برمجة التطبيقات (Reverse engineering API endpoints)
لم يتم توثيق كل نقطة نهاية، ولكن يمكنك رؤية مثال لطلب واستجابة واجهة برمجة التطبيقات لأي نقطة نهاية باتباع هذا الدليل:
يتم دعم Discourse بواجهة برمجة تطبيقات JSON كاملة. كل ما يمكنك القيام به على الموقع يمكنك أيضًا القيام به باستخدام واجهة برمجة تطبيقات JSON.
تتوفر وثائق واجهة برمجة التطبيقات على docs.discourse.org . يمكنك أيضًا استخدام مكتبة العميل discourse_api الخاصة بلغة Ruby. ومع ذلك، ليست كل نقطة نهاية موثقة.
لتحديد كيفية القيام بشيء ما باستخدام واجهة برمجة تطبيقات JSON، إليك بعض الخطوات التي يمكنك اتباعها.
مثال: إعادة تصنيف موضوع.
انتقل إلى موضوع وابدأ في تحرير فئة:
[image]
افتح أدوات مطور Chrome، …
حدود المعدل العامة والتنظيم في ديسكورس (Global rate limits and throttling in Discourse)
يأتي ديسكورس بثلاثة حدود معدل عامة مختلفة يمكن لمسؤولي الموقع تكوينها. لمزيد من التفاصيل حول هذه الحدود، راجع:
تأتي Discourse مع 3 حدود معدل عالمية مختلفة يمكن للإداريين الموقعيين تكوينها.
حدود معدل عالمية لكل عنوان IP
تنطبق هذه الحدود على كل عنوان IP فريد يتفاعل مع تطبيق Discourse. (يُستثنى الملفات التي تُقدَّم مباشرةً من نظام الملفات أو CDN)
بشكل افتراضي، يكون هذا الحد مفعّلًا، ويمكنك تعطيله أو ضبطه في وضع الإبلاغ.
DISCOURSE_MAX_REQS_PER_IP_MODE: القيمة الافتراضية block، حيث يُطبَّق هذا الحد بشكل افتراضي. (الخيارات الأخرى هي warn، warn+block، وnone)
DISCOURSE_MAX_REQS_PER_IP_PER_MINUTE: عدد الطلبات…
إنشاء الإشعارات عبر واجهة برمجة التطبيقات (Creating notifications via the API)
مرحباً، سؤال سريع: هل يمكن إرسال إشعارات للمستخدمين عبر واجهة برمجة التطبيقات (API)؟ (أو بطريقة أخرى).
في الوثائق، وجدت كيفية جلب إشعارات المستخدم وكيفية تعيينها كمقروءة، لكن لم أجد كيفية إرسال إشعارات جديدة (POST). إذا لم يكن ذلك ممكناً، أعتقد أنه يمكن دائماً استخدام الرسائل الخاصة كبديل.
أقدر أي توضيح بخصوص هذا الأمر. شكراً.
مواصفات مفاتيح واجهة برمجة تطبيقات المستخدم (User API keys specification)
يحتوي Discourse على نظام لتوليد مفاتيح API لكل مستخدم إذا تم اتباع بروتوكول محدد للغاية. يسهّل هذا الميزة وصول “التطبيقات” إلى مثيلات Discourse دون الحاجة إلى إشراك المشرفين.
وصف عالي المستوى
على مستوى عالٍ:
يقوم العميل (تطبيق سطح المكتب، إضافة المتصفح، تطبيق الهاتف المحمول) بتوليد زوج من المفاتيح الخاصة/العامة وعنوان URL للعودة.
يعيد العميل التوجيه إلى مسار على Discourse ليمنح Discourse مفتاحه العام.
يحصل Discourse على موافقة المستخدم لاستخدام التطبيق.
يولد Discourse مفتاح API لل…
آخر مراجعة بواسطة @sam في 2026-03-17T17:00:00Z