حسب فهمي، عند إنشاء webhook لأحداث المستخدم، يجب أن يُرسل webhook عند تحديث المستخدم لبريده الإلكتروني أو اسمه. لقد تحققت ولم أحصل على أي شيء في الـ payload عند تغيير الاسم، ولكن إذا قمت بتغيير الصورة الرمزية، أحصل على الـ webhook. هل أفعل شيئًا خاطئًا؟ أم أن هذا يعمل كما هو مقصود؟
أنا متأكد تمامًا من أنه لا توجد خطط لأي أحداث تتعلق بتغيير الاسم أو تغيير البريد الإلكتروني.
ستكون ميزة إرسال إشعار ويب (webhook) عند تحديث اسم المستخدم أو البريد الإلكتروني مفيدة للغاية. فأنا أدير قائمة بريدية خارجية، ويتم إضافة أي مستخدم يسجل الدخول تلقائيًا إلى هذه القائمة. كما يتم إلغاء اشتراك البريد الإلكتروني عند حذف حساب المستخدم.
تظهر المشكلة عندما يقوم المستخدم بتحديث عنوان بريده الإلكتروني، لأن ذلك لا يُفعّل إشعار الويب. الحل المؤقت الذي طبقته هو التحقق من اسم المستخدم والبريد الإلكتروني في كل مرة يسجل فيها المستخدم الدخول أو الخروج، وفي حال وجود أي تغيير، يتم تحديث البريد الإلكتروني. ومن الواضح أن هذا يُعدّ هدرًا كبيرًا للموارد، بينما سيكون وجود إشعار ويب في حالة تحديث الاسم والبريد الإلكتروني أمرًا رائعًا.
لا أدري، ما رأيك يا @sam؟
بالتأكيد، أنا أؤيد إضافة webhook لهذا الغرض. @vinothkannans ربما يمكنك إضافته إلى قائمتك، ذات أولوية منخفضة.
يجب علينا مزامنة مستخدمين Discourse مع Stripe، لذا فإن وجود webhook يُعلم بتغيير البريد الإلكتروني سيكون مفيدًا جدًا، مما يتيح لنا تحديث عميل Stripe أيضًا.
نأمل أن يتم تنفيذ ذلك قريبًا.
الآن، ستؤدي تغييرات اسم المستخدم إلى تفعيل ويب هوك المستخدم. قريبا سأضيف البريد الإلكتروني أيضا.
ماذا بشأن البريد الإلكتروني الأساسي/الثانوي المختلف؟ نأمل أن تتضمن أيضًا معلومات إضافية حول أي واحد بالضبط تم تغييره.
كما أفترض أن هذا سيُفعّل بعد التحقق من البريد الإلكتروني؟
الآن، ستؤدي تغييرات بريد المستخدم الإلكتروني إلى تشغيل أدوات الويب. @gpetrov نعم، سيتم تشغيلها فقط بعد التحقق من البريد الإلكتروني. وكما هو الحال مع جميع أدوات الويب الأخرى، لن تتضمن تفاصيل حول الجزء المحدد من البيانات الذي تم تغييره. سيتم تشغيل حدث user_updated مع بيانات المستخدم. إذا كان لديك بالفعل القيم السابقة، فيمكنك تحديد التغيير من خلال المقارنة.
لكن هذا يبدو جوهريًا بالنسبة لي! كيف يمكننا معرفة ما تم تغييره واتخاذ الإجراء المناسب؟
على سبيل المثال، أحتاج إلى مزامنة تغيير البريد الإلكتروني، ولكن للقيام بذلك يجب أن أعرف البريد الإلكتروني القديم والجديد. لا يمكنني ببساطة الاحتفاظ بنسخة من جميع عناوين البريد الإلكتروني القديمة للمستخدمين ومقارنتها مع كل تغيير…! هذا سيستهلك وقتًا وموارد بشكل مفرط.
ربما يجب عليك التحقق من أمثلة مثل webhooks الخاصة بـ Stripe، حيث يقدمون بوضوح معلومات حول ما تم تغييره بالضبط وما كانت القيمة القديمة والقيمة الجديدة.
عذراً، لم يُدرج ذلك في خارطة الطريق بعد. قد نقبله عبر طلب سحب (pull request).