لا يمكن أن يكون اسم المستخدم فارغًا عند إعداد موضوع ندوة Zoom عبر الإنترنت

مرحبًا Penar، شكرًا لك على الإضافة الرائعة، ستكون مفيدة جدًا! لقد جربتها للتو وتم إعدادها بسلاسة. هناك بعض المشكلات التي لاحظتها:

  • عندما أنشئ موضوعًا مرتبطًا بالندوة عبر الإنترنت، يظهر هذا الخطأ، لكن إذا قمت بتحديث الصفحة، يتم إنشاء الموضوع ويبدو أن كل شيء على ما يرام.

أجد هذا في السجلات:

/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:18:in `block (2 levels) in execute'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:12:in `block in execute'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
activerecord-6.0.1/lib/active_record/relation/delegation.rb:85:in `each'
/var/www/discourse/plugins/discourse-zoom/app/jobs/scheduled/send_webinar_reminders.rb:11:in `execute'
/var/www/discourse/app/jobs/base.rb:232:in `block (2 levels) in perform'
rails_multisite-2.1.1/lib/rails_multisite/connection_management.rb:64:in `with_connection'
/var/www/discourse/app/jobs/base.rb:221:in `block in perform'
/var/www/discourse/app/jobs/base.rb:217:in `each'
/var/www/discourse/app/jobs/base.rb:217:in `perform'
/var/www/discourse/app/jobs/base.rb:279:in `perform'
mini_scheduler-0.12.2/lib/mini_scheduler/manager.rb:86:in `process_queue'
mini_scheduler-0.12.2/lib/mini_scheduler/manager.rb:36:in `block (2 levels) in initialize'
  • المشكلة الأكبر هي أنني لا أرى زر الانضمام عندما تكون الجلسة مباشرة:

  • للمعلومات: خلفية العد التنازلي لا تتبع السمة، وقد اضطررت لتغييرها لتناسب سمة الظلام الخاصة بي لأنها كانت بيضاء فقط:
.webinar-header .countdown .pill {
    background: #485769;
}

سؤال: عندما يسجل شخص ما، هل سيستلم إشعارًا على الموقع فقط دون بريد إلكتروني؟ أم سيستلم بريدًا إلكترونيًا إذا لم يكن حاليًا على الموقع؟

شكرًا لك!

شكرًا لك يا ديفيد،

هل أكملت خطوات اشتراك الحدث؟ إنها رابط ويب (webhook) من واجهة برمجة تطبيقات Zoom، وتُستخدم لتحويل زر “مسجّل” إلى زر “انضم الآن” فور بدء الحدث.

سيصلهم رسالة خاصة (PM)، مما يعني أنهم سيستلمون بريدًا إلكترونيًا إذا كانت إعداداتهم تسمح بإرسال رسائل البريد الإلكتروني عبر الرسائل الخاصة.

سأبحث في المشكلتين الأخريين قريبًا.

لقد قمت بكل ذلك. هذا ربما سؤال تافه، لكن تحت content security policy script src لديك https://source.zoom.us، هل من المفترض استبدال source بشيء آخر؟ ربما اسم التطبيق؟

همم. وهل قمت بتحديد جميع المربعات في تبويب الندوة عبر الإنترنت؟ يجب أن تبدو كالتالي:

لا، هذا صحيح، وعلى أي حال، لم يصل إعدادك بعد إلى تلك الشاشة.

نعم، لقد تحققت من تلك. ما الذي يجب أن يكون عليه “رابط نقطة نهاية إشعار الحدث” في التطبيق؟

يجب أن يكون الرابط https://yoursite.com/zoom/webhooks/webinars.json — ألاحظ أن تعليماتي أعلاه لا تتضمن هذا التفصيل، آسف على ذلك. أتمنى أن يكون هذا هو الجزء الناقص.

هذا ما كان مطلوبًا. شكرًا لك!

لم أكن واضحًا بما يكفي، وللتوضيح: لا يزال لدي نفس المشكلة المتعلقة بخطأ “لا يمكن أن يكون اسم المستخدم، إلخ، فارغًا”، لكن لا توجد أي سجلات الآن، بينما يعمل كل شيء آخر بشكل صحيح.

لقد قمت بفحص هذه المشكلة @davidkingham، ويبدو أن الندوة عبر الإنترنت التي تنشئها في Zoom لا تحتوي على مضيف، أو أن واجهة برمجة التطبيقات (API) لا ترجع تفاصيل المضيف. يحاول الإضافة مطابقة حساب مستخدم Zoom (عبر البريد الإلكتروني) بحساب في Discourse، وإذا لم يجد حسابًا، فإنه ينشئ مستخدمًا مؤقتًا في Discourse.

إما أن ندوتك عبر الإنترنت لا تحتوي على مضيف محدد، أو أن استدعاء واجهة برمجة التطبيقات للحصول على كائن المستخدم للمضيف يُرجع قيمة فارغة.

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

أيضًا، إذا قمت بحذف الموضوع لإعادة المحاولة، فإنه لا يسمح لي بإضافة تلك الندوة إلى موضوع آخر لأنه يعتقد أن الندوة مرتبطة بموضوع آخر بالفعل، على الرغم من أنه تم حذفه.

أتساءل عما إذا كنت تتلقى أي بريد إلكتروني من Zoom للمستخدم على الإطلاق. ربما لا يحتوي مفتاح واجهة برمجة التطبيقات (API) على النطاقات (scopes) الصحيحة المحددة؟

هذا هو استدعاء واجهة برمجة التطبيقات الذي أعتقد أنه لا يعيد بيانات: https://marketplace.zoom.us/docs/api-reference/zoom-api/users/user (أو ربما تكون حالة المستخدم لديك pending؟)

نعم، تم التأكيد. قد يكون هناك إصلاح قريب لهذا، وفي الوقت الحالي، يمكنك الذهاب إلى الموضوع المحذوف ومن قائمة إدارة الموضوع، يمكنك النقر على “إزالة الندوة عبر الإنترنت”.

إليك سجل المكالمات عند حدوث الخطأ، ويبدو أنه يتجاوز حد المعدل المسموح به

{
endpoint: "https://api.zoom.us/v2/users/VI4TWwOvT-SKaycEEMws8w",
response_headers: [
"Set-Cookie: cred=73B256F7AFD1CC7FEA83613B92876F28; Path=/; Secure; HttpOnly"
],
date_time: "2020-03-25 11:42:17",
method: "GET",
request_body: "غير متاح",
response: {
code: 429,
message: "لقد وصلت إلى الحد الأقصى للمعدل في الثانية لهذه الواجهة البرمجية. حاول مرة أخرى لاحقًا."
},
request_headers: [
"authorization: ******",
"connection: close"
],
request_params: [
],
http_status: "429"
}

هذا مقيد إلى حد ما… حسب علمي، يتم إجراء استدعاءين فقط لـ API: أحدهما للحصول على الندوة عبر الإنترنت، والآخر للحصول على تفاصيل مقدم الندوة (في الواقع، في عالم مثالي، كان ينبغي تضمين تفاصيل مقدم الندوة في استدعاء API الأول).

يمكنك محاولة طرح هذه المسألة في منتدى مطوري Zoom.

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

اقتراح صغير للإضافة: أود أن يظهر قائمة المشاركين بنفس طريقة عرض المضيف. أي وضع الصورة الرمزية أسفل العنوان مع الاسم بجانبها. في الوقت الحالي، لا يكون المشارك واضحًا جدًا مع وجود الصورة الرمزية الصغيرة فقط.