Skip to content
تم إنشاء هذه الصفحة وترجمتها بمساعدة الذكاء الاصطناعي. إذا لاحظت أي أخطاء، لا تتردد في المساهمة في تحسينها. تعديل على GitHub

Slack

ربط PRX بـ Slack باستخدام بوت مع رموز OAuth وSocket Mode لأحداث الوقت الفعلي ودعم المحادثات في السلاسل.

المتطلبات الأساسية

  • مساحة عمل Slack لديك صلاحية تثبيت التطبيقات فيها
  • تطبيق Slack مُنشأ في api.slack.com/apps
  • رمز بوت (xoxb-...) واختياريًا رمز مستوى التطبيق (xapp-...) لـ Socket Mode

الإعداد السريع

1. إنشاء تطبيق Slack

  1. اذهب إلى api.slack.com/apps وانقر "Create New App"
  2. اختر "From scratch" وحدد مساحة عملك
  3. تحت "OAuth & Permissions"، أضف صلاحيات البوت هذه:
    • chat:write، channels:history، groups:history، im:history، mpim:history
    • files:read، files:write، reactions:write، users:read
  4. ثبّت التطبيق في مساحة عملك وانسخ Bot User OAuth Token (xoxb-...)

2. تفعيل Socket Mode (موصى به)

  1. تحت "Socket Mode"، فعّله وأنشئ رمز مستوى التطبيق (xapp-...) بصلاحية connections:write
  2. تحت "Event Subscriptions"، اشترك في: message.channels، message.groups، message.im، message.mpim

3. الإعدادات

toml
[channels_config.slack]
bot_token = "xoxb-your-bot-token-here"
app_token = "xapp-your-app-token-here"
allowed_users = ["U01ABCDEF"]

4. التحقق

bash
prx channel doctor slack

مرجع الإعدادات

الحقلالنوعالقيمة الافتراضيةالوصف
bot_tokenStringمطلوبرمز OAuth لبوت Slack (xoxb-...)
app_tokenStringnullرمز مستوى التطبيق (xapp-...) لـ Socket Mode. بدونه، يعود إلى الاستطلاع
channel_idStringnullتقييد البوت لقناة واحدة. احذفه أو عيّنه لـ "*" للاستماع عبر جميع القنوات
allowed_users[String][]معرّفات مستخدمي Slack. فارغ = رفض الكل. "*" = السماح للكل
interrupt_on_new_messageboolfalseعند التفعيل، تلغي رسالة جديدة من نفس المرسل الطلب الجاري
thread_repliesbooltrueعند التفعيل، تبقى الردود في السلسلة الأصلية. عند التعطيل، تذهب الردود إلى جذر القناة
mention_onlyboolfalseعند التفعيل، يرد فقط على الإشارات بـ @. تُعالج الرسائل المباشرة دائمًا

الميزات

  • Socket Mode -- تسليم الأحداث الفوري بدون عنوان URL عام (يتطلب app_token)
  • الردود في السلاسل -- يرد تلقائيًا داخل السلسلة الأصلية
  • مرفقات الملفات -- يحمّل ويُدرج الملفات النصية؛ يعالج الصور حتى 5 ميجابايت
  • أسماء العرض -- يحلّ معرّفات مستخدمي Slack إلى أسماء العرض مع تخزين مؤقت (صلاحية 6 ساعات)
  • دعم القنوات المتعددة -- الاستماع عبر قنوات متعددة أو التقييد لواحدة
  • مؤشرات الكتابة -- يعرض حالة الكتابة أثناء توليد الاستجابات
  • دعم المقاطعة -- إلغاء الطلبات الجارية عند إرسال المستخدم متابعة

القيود

  • رسائل Slack محدودة بـ 40,000 حرف (نادرًا ما تكون مشكلة)
  • تحميل الملفات محدود بـ 256 كيلوبايت للنصوص و5 ميجابايت للصور
  • الحد الأقصى 8 مرفقات ملفات تُعالج لكل رسالة
  • يتطلب Socket Mode صلاحية connections:write على رمز مستوى التطبيق
  • بدون Socket Mode (app_token)، تعود القناة إلى الاستطلاع بتأخير أعلى

استكشاف الأخطاء

البوت لا يستقبل الرسائل

  • تحقق أن Socket Mode مفعّل وapp_token صحيح
  • تأكد أن "Event Subscriptions" تتضمن أحداث message.* اللازمة
  • تأكد أن البوت دُعي إلى القناة (/invite @botname)

الردود تذهب إلى القناة بدلاً من السلسلة

  • تأكد أن thread_replies ليست معيّنة على false
  • ردود السلاسل تتطلب أن تحتوي الرسالة الأصلية على thread_ts

مرفقات الملفات لا تُعالج

  • تأكد أن البوت لديه صلاحية files:read
  • فقط أنواع MIME من text/* وأنواع الصور الشائعة مدعومة
  • تُتخطى الملفات الأكبر من حدود الحجم بصمت

Released under the Apache-2.0 License.