يصف هذا الدليل كيفية إعداد موفر Microsoft Teams المضمن في discourse-chat-integration.
إعداد Microsoft Teams
في Microsoft Teams:
من شريط التنقل العمودي على اليسار، انقر فوق زر النقاط الثلاث (\u003ckbd\u003e…\u003c/kbd\u003e) وحدد \u003ckbd\u003eWorkflows\u003c/kbd\u003e (سير العمل) من القائمة.
Post as: (النشر بصفتك:) اختر من يجب أن تأتي الرسائل منه؛ يمكنك ترك هذه القيمة مضبوطة على القيمة الافتراضية أو اختيار User (مستخدم) لجعل الرسالة تظهر منك.
Post in: (النشر في:) حدد Channel (قناة)، مما سيؤدي إلى ظهور المزيد من الحقول:
Team: (الفريق:) حدد الفريق المطلوب.
Channel: (القناة:) حدد القناة المطلوبة.
Adaptive Card: (بطاقة تكيفية:) انقر داخل الإدخال، مما سيفتح نافذة منبثقة (موضحة في الخطوة التالية).
يجب أن ترى الآن سير عمل يسمى manual → Post card in a chat or channel في قائمتك. انقر فوق زر النقاط العمودية على سير العمل هذا وحدد \u003ckbd\u003eDetails\u003c/kbd\u003e (التفاصيل) من القائمة المنسدلة.
في هذه الصفحة، انقر فوق \u003ckbd\u003eCopy webhook link\u003c/kbd\u003e (نسخ رابط خطاف الويب) للحصول على الرابط للخطوات التالية. بينما أنت هنا، يمكنك اختياريًا تعديل اسم سير العمل ليعكس الغرض منه للآخرين في فريقك.
في الشريط الجانبي، ابحث عن قسم Plugins (المكونات الإضافية) وانقر فوق Chat Integrations (تكاملات الدردشة)، ثم انقر فوق \u003ckbd\u003e**+ Create Channel**\u003c/kbd\u003e (إنشاء قناة).
ابحث عن موضوع حسب المعرف أو العنوان أو عنوان URL؛ حدد الموضوع المطلوب؛ وانقر فوق \u003ckbd\u003eSend Test Message\u003c/kbd\u003e (إرسال رسالة اختبار).
بمجرد التأكد من أن كل شيء يعمل، يمكنك العودة إلى Discourse وإعداد قواعد إضافية لقناتك لتخصيص الرسالة.
استكشاف الأخطاء وإصلاحها
إذا لم تظهر الرسالة في Microsoft Teams كما هو متوقع، فانتقل إلى صفحة Workflow Details (تفاصيل سير العمل) (راجع الخطوة 10 في قسم إعداد Teams أعلاه) وتحقق من قسم Run history (سجل التشغيل). يجب أن يعرض هذا سجلات لكل عملية تشغيل للرسالة.
انقر فوق التشغيل الفاشل، والذي سينقلك إلى منطقة Power Automate حيث يمكنك رؤية رسالة خطأ في الجزء العلوي من الصفحة. (في لقطة الشاشة أدناه، كان التشغيل ناجحًا، لكن السهم يشير إلى المكان الذي سيظهر فيه الخطأ في حالة فشل التشغيل.)
لقد جربته للتو وبدا أنه يعمل في البداية، ولكن فقط في المرة الأولى التي نقرت فيها على زر الاختبار.
تم إعداد القواعد على النحو التالي:
النوع: عادي
الفلتر: جميع المواضيع (؟) والردود (ترجمة من الألمانية هنا)
التصنيف: Sandbox
عندما كتبت ردًا على موضوع الاختبار في تصنيف Sandbox الخاص بي، ظهر لي رمز تحذير عند الانتقال إلى تكاملات الدردشة، ولكن عند النقر على مثلث التحذير، يظهر خطأ غير معروف... مع رسالة الخطأ null.
عند محاولة إرسال إشعار اختبار آخر، يظهر خطأ آخر: 500 internal server error.
أي تلميحات حول أين نبدأ في استكشاف المشكلة وتلافيها موضع ترحيب. إذا كان ينبغي نشر هذا في مكان آخر (مثل صفحة إضافة تكامل الدردشة)، أو إنشاء موضوع منفصل، فلا تتردد في نقله وفقًا لذلك أو إخباري بذلك.
تمت إعداده للتو قبل أسبوع تقريبًا على خادم DigitalOcean منفصل (تثبيت بنقرة واحدة، وأنا الآن على الإصدار: 2.6.0.beta1 (310952fd6a). أستخدم نطاقًا فرعيًا ولدي سجلات DNS أيضًا على DigitalOcean. لدي سجل A يشير إلى عنوان IP، وسجل MX يشير إلى اسم النطاق الفرعي لاستقبال الردود عبر البريد الإلكتروني وفقًا لـ هذه التعليمات). الشيء الوحيد هو أنني لم أنشر سجل DMARC.
هذا كل ما يمكنني تذكره فيما يتعلق بشؤون DNS. ومع ذلك، حتى الآن، كل شيء يعمل كما هو متوقع. الموقع مُعد، ويمكنني الوصول إليه عبر اسم النطاق الفرعي، وتسجيل الدخول، وإنشاء مواضيع (حتى عبر البريد الإلكتروني)، وما إلى ذلك.
لقد فوجئت فقط بأن الرسالة الأولى وصلت، لكن الرسائل اللاحقة لم تصل
عندما أقول “حل أسماء DNS”، أعني أن خادمك يواجه صعوبة في الاتصال بـ outlook.office.com. إعداد سجلات DNS الخاصة بمنتدىك لا ينبغي أن يؤثر على ذلك.
هل يمكنك محاولة الاتصال بخادمك عبر SSH وتشغيل الأمر التالي:
host outlook.office.com
يجب أن تحصل على نتيجة مشابهة للتالية:
outlook.office.com هو اسم بديل لـ substrate.office.com.
substrate.office.com هو اسم بديل لـ substrate.ms-acdc.office.com.
substrate.ms-acdc.office.com هو اسم بديل لـ afd-k.office.com.
afd-k.office.com هو اسم بديل لـ outlook-office-com.k-0002.k-msedge.net.
outlook-office-com.k-0002.k-msedge.net هو اسم بديل لـ k-0002.k-msedge.net.
k-0002.k-msedge.net يحتوي على عنوان IP: 13.107.18.11
k-0002.k-msedge.net يحتوي على عنوان IPv6: 2620:1ec:c::11
Trying "outlook.office.com"
Host outlook.office.com not found: 2(SERVFAIL)
Received 36 bytes from 127.0.0.53#53 in 43 ms
عند إضافة المنفذ :443، أواجه خطأً آخر:
Trying "outlook.office.com:443"
Host outlook.office.com:443 not found: 3(NXDOMAIN)
Received 40 bytes from 127.0.0.53#53 in 3 ms
Received 40 bytes from 127.0.0.53#53 in 3 ms
بالنسبة لنطاقات أخرى مثل google.com أو نطاق مثيل discourse الخاص بي (h-da.transformative-praxis.cc)، أو مواقع أخرى، أحصل على النتيجة المتوقعة المشابهة لما وصفتَه.
لقد قمت ببعض البحث حول الخطأ الأول، لكنني لا أزال غير متأكد من مصدره. لقد قرأتُ ما يلي، لكنني لم أستطع الحكم على ما إذا كان ذا صلة فعليًا بمشكلتي:
لقد حاولت إعادة المحاولة مرارًا وتكرارًا، وهذه المرة حصلت على النتائج التي وصفتها عند كتابة
host outlook.office.com
لذا بدا أن كل شيء على ما يرام في هذه المرحلة. قمت بتكرار ذلك عدة مرات متتالية للتأكد (حوالي 15 مرة مع فاصل زمني يقارب 10 ثوانٍ)، وفي نقطة ما حصلت على نفس خطأ “servfail” كما كان من قبل. لكن في الغالب كان الأمر يعمل.
الحالة معاكسة تمامًا عندما أحاول إرسال رسالة اختبار. ربما تعمل مرة واحدة من كل عشر مرات. وفي الأوقات الأخرى، أحصل على نفس الأخطاء كما كان من قبل. وعندما أنشر رسالة عادية تتوافق مع القاعدة التي حددتها للقناة، لا أحصل على إشعار ولا على رسالة خطأ في السجلات.
يبدو الأمر عشوائيًا لدرجة أنني لا أستطيع معرفة ما يسبب المشكلة.
استمررت في الاشتباه في إعداداتي التي تتضمن قطعتين (droplets) لكل نطاق فرعي وسجلين A مرتبطين بهما، بالإضافة إلى مجموعة واحدة من سجلات NS لنطاقي الرئيسي تشير إلى ns1.digitalocean.com. لذا جربت dnsstuff لموقعي وحصلت على نتيجة “فشل” في فحص سجل SOA، و whatsmydns.net لسجلات NS الخاصة بي، لكنني ما زلت لم أستطع اكتشاف أي روابط محتملة مع مشكلتي.
في هذه المرحلة، أنا مشوش تمامًا: من الذي يسبب الخطأ؟ هل أنا من ارتكب بعض إعدادات DNS الخاطئة (والتي لا ينبغي أن تؤثر على الأمر وفقًا لـ @david)، أم أن المشكلة في إعدادات الخادم أو مشاكله، أم أن الأمر يعود إلى MS-Teams (outlook.office.com) الذي يتصرف بشكل غير طبيعي أو يحجبني بطريقة ما؟
أي تلميحات حول ما يمكنني التحقق منه أو فعله لإيجاد الخطأ ستكون موضع تقدير، بما في ذلك أماكن أخرى يمكنني التوجه إليها وطرح السؤال، إذا كنت تعتقد أن هذا الأمر يتجاوز ما يمكنكم فعله لمساعدتي هنا.
شكرًا لك @Dan_Turner، لقد خفّضنا قليلاً من شروط التحقق الخاصة بنا، وهو ما يجب أن يساعد في تحسين الوضع. يرجى تجربته وإخباري إذا كان يعمل بشكل أفضل بالنسبة لك
ستحتاج إلى طلب من موفر الاستضافة الخاص بك تحديث الإضافة نيابةً عنك. في discourse.org، تم تطبيق هذا التغيير بالفعل على جميع عملائنا، لذا أفترض أنك مستضاف في مكان آخر؟
شكراً لك على هذه الإضافة المفيدة للغاية.
سيكون التحسين الكبير هو: إضافة إشارة للمجموعة في الرسالة لتوليد إشعارات على جانب Teams.
يبدو أن واجهة برمجة تطبيقات webhook لم تكن (أو لا تزال) تطبق هذه الميزة، ولكن البعض يقول إنها تم تطبيقها مؤخرًا.
هل تعتقد أنه يمكن تطبيقها بسهولة؟