لقد بحثت لساعات حول كيفية استخدام واجهة برمجة تطبيقات REST لإضافة حدث تقويم إلى موضوع، وللأسف لم أتمكن من العثور على إجابة.
لقد أنشأت تقويم فئة وتمكنت من عرض حدث الموضوع الذي تم إنشاؤه يدويًا، لكنني لم أتمكن من التعامل مع أتمتة إنشاء حدث الموضوع عند إضافة موضوع باستخدام واجهة برمجة تطبيقات REST.
لقد وجدت “discourse-post-events/events.json” ولكن عندما جربت واجهة برمجة التطبيقات هذه، حصلت على “غير موجود”. أفترض أن هذا بسبب الحاجة إلى معرّفات الأحداث ولا أعرف كيفية إنشائها.
ماذا عن مجرد إنشاء موضوع أو منشور للحدث عبر واجهة برمجة التطبيقات وإضافة علامات [event][/event] إلى المنشور كقيمة للمعامل raw الخاص به؟
تبدو الحيلة في أنه يجب أن تكون هناك مسافة بادئة جديدة (\n) بين علامتي event الافتتاحية والختامية.
أنا أستخدم "Content-Type: multipart/form-data" في المثال أدناه لأنه أسهل من التعامل مع JSON من سطر الأوامر. أيضًا $api_key تم تعيينها إلى قيمة مفتاح واجهة برمجة تطبيقات فعلي:
curl -X POST "http://localhost:4200/posts.json" \
-H "Api-Key: $api_key" \
-H "Api-Username: scossar" \
-H "Content-Type: multipart/form-data" \
-F title="Can I create an event via the API?" \
-F category=6 \
-F raw='[event start="2024-05-10 20:00" status="public" timezone="America/Vancouver" end="2024-05-10 21:30" allowedGroups="trust_level_0"]\n[/event]'
أخذت بياناتي وحاولت إنشاء المنشور باستخدام واجهة المستخدم. أخبرتني أن اسم الحدث يجب أن يكون 5 أحرف على الأقل.
بعد ذلك، جربت استعلام curl الخاص بك يا سيمون، وقال شيئًا مثيرًا للاهتمام: لا يمكنني إنشاء منشور لأنني لا أملك الحقوق لإنشاء أحداث…
لذلك أعطيته حقوق المسؤول.
والآن كل شيء على ما يرام. كل شيء يعمل.
شكراً لمساعدتك!