مرحبًا يا أصدقاء! أعمل حاليًا على تكامل بين Front App وDiscourse. حتى الآن، أستخدم Pipedream لربطهما معًا.
تمكنت من إعداد سيرين عمل:
Discourse → Front App. عند استلام رسالة جديدة على Discourse، يتم نشرها في Front.
Front → Discourse. عندما أرد على رسالة Discourse المستوردة عبر Front، فإن ويب هوك من Pipedream يستمع إلى الردود الجديدة على Front، ثم يستخدم واجهة برمجة تطبيقات Discourse لنشر الرد على Discourse. هذا يعمل بشكل رائع، ولكن عندما أذهب إلى Front، يظهر ردّي (لأنه يُفعّل سير العمل الأول، أي عند استلام رسالة جديدة على Discourse)، فأصبح لدي الآن رسالتان في موضوع البريد الوارد: الرسالة التي أرسلتها عبر Front، ونفس الرسالة ولكن تم استيرادها عبر سير العمل الأول.
هل لدى أحدكم فكرة حول كيفية “استبعاد” هذه الرسائل المرسلة من Front والتي يتم جلبها من سير العمل الأول؟ هل هذا ممكن باستخدام واجهة برمجة تطبيقات Discourse؟
بمجرد أن أرد من Front، يتم إرساله عبر عنوان URL (يتم إنشاؤه من Pipedream) يُفعّل واجهة برمجة تطبيقات Discourse POST للموضوع الأصلي (يتم العثور عليه عبر معرف الموضوع).
بشكل أساسي، الأمر كالتالي…
أرسل ردًا على شخص ما في Front.
ثم تلاحظ واجهة برمجة تطبيقات Discourse (من سير العمل 1) وجود رسالة جديدة في المنتدى، فتُرسلها كرسالة جديدة في Front.
لا أريد التكرار.
أعلم أن هذا قد يكون محيرًا، لذا أخبرني إذا لم أشرح ذلك بشكل جيد. أي توجيهات ستكون مفيدة للغاية!
إذن، هل من الآمن القول إنك تريد فقط دفع موضوع في Discourse كرسالة في Front عند إنشائه لأول مرة، وبعد ذلك، لا مرة أخرى أبدًا؟
هل فهمت هذا بشكل صحيح؟
إنشاء موضوع في Discourse
1أ) تحويل الموضوع إلى Front كرسالة
رد المستخدم على رسالة في Front
2أ) دفع رسالة Front إلى Discourse كرد على الموضوع المنشأ.
هل سيقوم مستخدم في Discourse بالرد على 2أ هنا؟ أم تتوقف المحادثة بعد هذه النقطة؟
السبب في طلبي هو أنك قد تفكر في التحقق من معرف المنشور (Post ID) عند الإنشاء عندما يأتي من Front. إذا قام Front بتفعيل إنشاء post id#345 في Discourse
…ففي كود Pipedream الخاص بك الذي يراقب ويحول منشورًا في Discourse إلى منشور في Front، يمكنك التأكد من أن Post Id لا يساوي الذي أنشأته للتو، وإذا كان كذلك، فلا تقم بتحويله إلى رسالة في Front…
هل هذا ممكن في Pipedream؟ لست على دراية بهذا المنتج.
نعم، لا يزال بإمكان مستخدمين Discourse الرد على 2a. لقد نجحنا في جعل ذلك يعمل! لذا، عندما تُرسل رسائل جديدة من أعضاء المجتمع عبر Discourse، يتم إضافتها تلقائيًا إلى موضوع Front.
كما تلاحظ، قمت بالرد عبر Front بعبارة “رسالة اختبار فقط من Front”، وبما أن هذه الرسالة نُشرت على Discourse، فإن واجهة برمجة تطبيقات Discourse تكتشف أنها رسالة جديدة، وبالتالي ترسل رسالة جديدة إلى الموضوع.
ردك جعلني أفكر ربما إنشاء نوع من الدالة تبحث عن معرف من Front لاستبعاده عند استخدام واجهة برمجة تطبيقات Discourse لإرسال الرسائل… سأجرب ذلك. أقدر مساعدتك! شكرًا لك
مرحبًا @jordan.vidrine، أردت فقط أن أقول شكرًا لك على المساعدة! إن مناقشة الأمر معك عبر هذا الموضوع أعطتني فكرة، والآن يعمل الأمر بنجاح. وتحديدًا هذا الجزء:
السبب في أنني أسأل هو أنه قد يكون من المفيد التحقق من معرف المنشور عند إنشائه عند الوصول من واجهة Front. إذا كان Front قد أثار إنشاء المنشور رقم 345 على Discourse