فشل Webhook مع إضافة WP Discourse

لقد قمت بتثبيت إضافة WP Discourse، ويبدو أن كل شيء يعمل بشكل صحيح باستثناء Webhook “مزامنة بيانات التعليقات”. فهو يعود باستمرار بحالة “فشل” مع رمز حالة 400.

هذا هو الرد:

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>المتصفح أرسل طلبًا لا يمكن لهذا الخادم فهمه.<br />
</p>
</body></html>
  • يبدو أن عنوان URL للحمولة صحيح.
  • تم تعيين مفتاح سر الويب في كل من Discourse وإضافة ووردبريس.
  • نوع المحتوى هو application/json
  • تم تحديد خيار حدث النشر
  • تم تحديد خيار التحقق من شهادة TLS لعنوان URL للحمولة
  • تم تحديد خيار نشط

أي أفكار ستكون موضع تقدير كبير.

تأكد مرة أخرى من أن عنوان URL للحمولة ومفتاح سر الويب هوك مضبوطين بشكل صحيح.

إذا لم يحل ذلك المشكلة، هل يمكنك إخباري بهيكلية الروابط الدائمة التي يستخدمها موقع ووردبريس الخاص بك؟ توجد هيكلية الروابط الدائمة في قسم الإعدادات / الروابط الدائمة من لوحة تحكم ووردبريس الخاصة بك.

تم تعيين عنوان URL للحمولة ومفتاح السري للويب هوك بشكل صحيح.

هيكلية الرابط الدائم هي اسم المنشور

ما هي الاستجابة التي تحصل عليها من موقع ووردبريس الخاص بك عند النقر على زر “Ping” من قائمة أحداث الويب هوك في ديسكورد؟

فقط أتساءل إن كانت هناك أي أفكار أخرى حول هذا الأمر…

هل تعلم ما إذا كنت قد عطلت واجهة برمجة تطبيقات WordPress REST على موقعك؟ إذا كان الأمر كذلك، فسيؤدي ذلك إلى فشل طلبات الويب هوك المرسلة من Discourse.

يبدو أنه مفعّل، لكنني سأبحث في الأمر أكثر

يبدو أن REST على ما يرام .. ولكن عند كتابة عنوان URL للحمولة في المتصفح، أحصل على خطأ 404 …

هذا متوقع، حيث أن المسار الذي تنشر فيه الويب هوك على Discourse يقبل فقط طلب POST.

هل يُتوقع أن يعمل الـ ping إذن؟

نعم، يجب أن يعمل الـ ping.

ما هو شكل الرابط الذي تضيفه إلى حقل “عنوان الحمولة” للويب هوك في Discourse؟ يمكنك حذف جزء النطاق من الرابط. الرابط الذي يُعطى لك في وصف خيار “مزامنة بيانات التعليق” على WordPress يجب أن يكون صحيحًا (يتم إنشاؤه بناءً على هيكل الروابط الدائمة الذي يستخدمه موقعك)، لكنه قد يكون غير صحيح لحالتك.

https://my.url.net/wp-json/wp-discourse/v1/update-topic-content

انسخ والصق من إضافة WP Discourse. قسم مزامنة بيانات التعليقات في علامة التبويب الويب هوك.

يبدو أن عنوان URL للحمولة صحيحًا. هل لديك أي إضافات متعلقة بالأمان على موقع WordPress الخاص بك قد تمنع الطلب؟

نحن نفعل ذلك الآن، لكننا لم نفعل ذلك عندما واجهت المشكلة في البداية.

الإضافة هي Solid Security Pro - SolidWP

إحدى الميزات المعلنة في إضافة Ithemes Security هي إمكانية استخدامها لمنع الوصول إلى واجهة برمجة التطبيقات REST. سيكون من الجيد التأكد من أن هذا ليس هو سبب المشكلة.

لا تحتاج إلى استخدام Webhook لمزامنة بيانات التعليقات مع إضافة WP Discourse. الفائدة الرئيسية لاستخدامه هي أنه يسمح بظهور التعليقات فور نشرها على Discourse، بدلاً من انتظار ما يصل إلى 10 دقائق لجلب التعليقات الجديدة. في المواقع ذات الحركة الكثيفة، يمكن أن يقلل الـ Webhook من عدد طلبات واجهة برمجة التطبيقات التي يقوم موقعك بإرسالها إلى Discourse. وهذا يؤثر بشكل رئيسي على المواقع التي تعرض أرقام التعليقات في صفحة فهرس المنشورات.

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

هل توجد طريقة لتأكيد عنوان URL للحمولة بخلاف صفحة الويب الخاصة بإضافة Discourse؟

لقطة الشاشة التي نشرتها أعلاه مؤشر جيد على أن عنوان URL للحملة صحيح. رمز الاستجابة 400 الذي تحصل عليه يشير إلى أن خادم ووردبريس يرفض الطلب. إذا كانت المشكلة تتعلق بمفتاح سري غير متطابق، لكانت استجابتك ستكون برمز 500.

إذا كان لديك وصول إلى ملف سجل الوصول في موقع ووردبريس، فسيوضح لك على الأرجح المشكلة بالضبط.

هل أنت على دراية بسجل الوصول الدقيق لـ WP الذي يجب أن أبحث فيه؟ لا أستطيع العثور على أي شيء مفيد.