إضافة حدث تقويم باستخدام واجهة برمجة التطبيقات REST

مرحباً،

لقد بحثت لساعات حول كيفية استخدام واجهة برمجة تطبيقات REST لإضافة حدث تقويم إلى موضوع، وللأسف لم أتمكن من العثور على إجابة.

لقد أنشأت تقويم فئة وتمكنت من عرض حدث الموضوع الذي تم إنشاؤه يدويًا، لكنني لم أتمكن من التعامل مع أتمتة إنشاء حدث الموضوع عند إضافة موضوع باستخدام واجهة برمجة تطبيقات REST.

لقد وجدت “discourse-post-events/events.json” ولكن عندما جربت واجهة برمجة التطبيقات هذه، حصلت على “غير موجود”. أفترض أن هذا بسبب الحاجة إلى معرّفات الأحداث ولا أعرف كيفية إنشائها.

شكراً لمساعدتك ونصائحك وتعليقاتك.

إعجاب واحد (1)

ماذا عن مجرد إنشاء موضوع أو منشور للحدث عبر واجهة برمجة التطبيقات وإضافة علامات [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]'
إعجاب واحد (1)
    const url = DISCOURSE_BASE_URL + '/posts.json';
    const message = {
        method: 'POST',
        headers: {
            'Api-Key': DISCOURSE_API_KEY,
            'Api-Username': DISCOURSE_API_USERNAME,
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            "title": title,
            "raw": content,
            "category": categoryId
        })
    };
    const response1 = await fetch(url, message);

أحصل على “كيان غير قابل للمعالجة” عندما يكون النص الخام كالتالي:

[event start="2024-05-16 19:00" status="public" name="585" timezone="Europe/Paris" allowedGroups="trust_level_0" end="2024-05-16 21:00"]
[/event]

عندما أحذف تعريف الحدث وأضع وصفًا بديلاً، يتم تحديث منتداي، ولكن بمجرد وضع تعريف الحدث، أحصل على كيان غير قابل للمعالجة.

لا أفهم ما الذي أفعله بشكل خاطئ.

ستحتاج إلى تهريب علامات الاقتباس المزدوجة التي تظهر داخل السلسلة. على سبيل المثال:

"raw": "[event start=\"2024-05-16 19:00\"...\n```
تأكد أيضًا من تضمين حرف السطر الجديد (`\n`) بين علامات الحدث.

أخذت بياناتي وحاولت إنشاء المنشور باستخدام واجهة المستخدم. أخبرتني أن اسم الحدث يجب أن يكون 5 أحرف على الأقل.
بعد ذلك، جربت استعلام curl الخاص بك يا سيمون، وقال شيئًا مثيرًا للاهتمام: لا يمكنني إنشاء منشور لأنني لا أملك الحقوق لإنشاء أحداث…
لذلك أعطيته حقوق المسؤول.
والآن كل شيء على ما يرام. كل شيء يعمل.
شكراً لمساعدتك!

إعجاب واحد (1)

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.