إضافة رأس تفويض لـ webhook؟

أعمل على دمج خيار اشتراك في نشرات Mailchimp البريدية ضمن تسجيلات المستخدمين الجدد، وقد حققت تقدماً باستخدام هذا الإضافة من @pfaffman GitHub - pfaffman/discourse-mailchimp-webhook · GitHub

تضيف الإضافة بنجاح “حدث إنشاء مستخدم” ويب هوك يظهر في /admin/api/web_hooks/new، وقد استنتجت من واجهة برمجة تطبيقات Mailchimp كيفية تعيين عنوان URL للحمولة الخاصة بالويب هوك على النحو التالي (مع معرف DC ومعرف القائمة الفعليين الخاصين بي):
https://[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/

أنشأت مستخدماً جديداً وقد تم تفعيل الويب هوك بنجاح، لكنني تلقيت استجابة “مفتاح API غير صالح” من Mailchimp. ومن خلال قراءة كود طريقة build_webhook_headers، لم يبدو أن إضافة مفتاح API إلى حقل “السر” سيعمل، حيث ينشئ ذلك رأس “X-Discourse-Event-Signature”، على الرغم من أنني جربت ذلك وحصلت على نفس الاستجابة.

كاختبار، قمت بتعديل طريقة build_webhook_headers يدوياً وأدرجت رأس التفويض الذي تتوقعه واجهة برمجة تطبيقات Mailchimp، وقد نجح ذلك (حصلت على استجابة نجاح، وظهر العضو الجديد من جانب Mailchimp):

headers['Authorization'] = 'apikey my-key-here'

من الواضح أن تعديل Discourse مباشرة ليس حلاً قابلاً للتطبيق، لكنني عالق الآن في كيفية إدخال رأس التفويض هذا في طلب الويب هوك الخاص بي. يبدو أن هناك طريقة لتوسيع جسم الطلب باستخدام :after_build_web_hook_body، لكنني لم أجد طريقة مماثلة للرأس.

سأقدر جداً أي مساعدة توجهني إلى الاتجاه الصحيح. شكراً!

أردتُ أن أعود وأتحقق لأرى ما إذا كان أي شخص قد يعرف حلاً لهذا السؤال… لم أتمكن من حل هذه المشكلة حتى الآن. لقد لجأتُ مؤقتًا إلى استخدام ملحقي لتجاوز طريقة build_webhook_headers في فئة Jobs::EmitWebHookEvent، رغم أنني أدرك أن هذا ليس حلاً مثاليًا.

شكرًا مقدّمًا!

مرحبًا بالجميع،

إذن، هل من المستحيل تعيين رأس Authorization في الويب هوك الخاص بي؟

فما الغرض من استخدام الويب هوك إذن؟ يبدو أن 99% من الويب هوك المفيدة تتطلب هذا الرأس.

:face_with_raised_eyebrow:

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

نظرًا لأن واجهة برمجة تطبيقات Mailchimp تستخدم المصادقة الأساسية عبر HTTP عند تزويد مفتاح API مع طلب واجهة برمجة التطبيقات، يمكنك أيضًا تضمين المفتاح في الرابط الذي تستدعيه (بدلاً من رأس Authorization الأكثر شيوعًا).

لذلك، في حالتي، قمت بتعيين رابط حمولة الويب هوك إلى:
https://user:[my-api-key]@[my-dc].api.mailchimp.com/3.0/lists/[my-list-id]/members/

ويبدو أن هذا يعمل بشكل جيد، حيث يتم الآن إضافة المستخدم إلى قائمة Mailchimp بنجاح.