Skip to content

Slack

عامل Triggerfish خود را به Slack متصل کنید تا عامل شما بتواند در مکالمات فضای کاری شرکت کند. آداپتور از فریم‌ورک Bolt با Socket Mode استفاده می‌کند که به معنای عدم نیاز به URL عمومی یا نقطه پایانی webhook است.

طبقه‌بندی پیش‌فرض

Slack به‌صورت پیش‌فرض طبقه‌بندی PUBLIC دارد. این واقعیت را منعکس می‌کند که فضاهای کاری Slack اغلب شامل مهمانان خارجی، کاربران Slack Connect و کانال‌های مشترک هستند. اگر فضای کاری شما کاملاً داخلی است، می‌توانید این را به INTERNAL یا بالاتر افزایش دهید.

راه‌اندازی

مرحله ۱: ایجاد برنامه Slack

۱. به api.slack.com/apps بروید ۲. روی Create New App کلیک کنید ۳. From scratch را انتخاب کنید ۴. برنامه را نام‌گذاری کنید (مثلاً «Triggerfish») و فضای کاری خود را انتخاب کنید ۵. روی Create App کلیک کنید

مرحله ۲: پیکربندی دامنه‌های توکن ربات

به OAuth & Permissions در نوار کناری بروید و Bot Token Scopes زیر را اضافه کنید:

دامنههدف
chat:writeارسال پیام
channels:historyخواندن پیام‌ها در کانال‌های عمومی
groups:historyخواندن پیام‌ها در کانال‌های خصوصی
im:historyخواندن پیام‌های مستقیم
mpim:historyخواندن پیام‌های مستقیم گروهی
channels:readلیست کانال‌های عمومی
groups:readلیست کانال‌های خصوصی
im:readلیست مکالمات پیام مستقیم
users:readجستجوی اطلاعات کاربر

مرحله ۳: فعال‌سازی Socket Mode

۱. به Socket Mode در نوار کناری بروید ۲. Enable Socket Mode را فعال کنید ۳. از شما خواسته می‌شود یک App-Level Token ایجاد کنید — نام‌گذاری کنید (مثلاً «triggerfish-socket») و دامنه connections:write را اضافه کنید ۴. App Token تولیدشده را کپی کنید (با xapp- شروع می‌شود)

مرحله ۴: فعال‌سازی رویدادها

۱. به Event Subscriptions در نوار کناری بروید ۲. Enable Events را فعال کنید ۳. زیر Subscribe to bot events، اضافه کنید:

  • message.channels
  • message.groups
  • message.im
  • message.mpim

مرحله ۵: دریافت بیانات اعتبار

به سه مقدار نیاز دارید:

  • Bot Token — به OAuth & Permissions بروید، روی Install to Workspace کلیک کنید، سپس Bot User OAuth Token را کپی کنید (با xoxb- شروع می‌شود)
  • App Token — توکنی که در مرحله ۳ ایجاد کردید (با xapp- شروع می‌شود)
  • Signing Secret — به Basic Information بروید، به App Credentials بروید و Signing Secret را کپی کنید

مرحله ۶: دریافت شناسه کاربر Slack

برای پیکربندی هویت مالک:

۱. Slack را باز کنید ۲. روی تصویر پروفایل خود در گوشه بالا-راست کلیک کنید ۳. روی Profile کلیک کنید ۴. روی منوی سه نقطه کلیک کنید و Copy member ID را انتخاب کنید

مرحله ۷: پیکربندی Triggerfish

کانال Slack را به triggerfish.yaml اضافه کنید:

yaml
channels:
  slack:
    # botToken، appToken، signingSecret در کلیدزنجیر سیستم‌عامل ذخیره شده
    ownerId: "U01234ABC"

رمزها (توکن ربات، توکن برنامه، رمز امضا) در حین triggerfish config add-channel slack وارد شده و در کلیدزنجیر سیستم‌عامل ذخیره می‌شوند.

گزینهنوعالزامیتوضیحات
ownerIdstringتوصیه‌شدهشناسه عضو Slack شما برای تأیید مالک
classificationstringخیرسطح طبقه‌بندی (پیش‌فرض: PUBLIC)

رمزها را ایمن ذخیره کنید هرگز توکن‌ها یا رمزها را در کنترل منبع ثبت نکنید. از متغیرهای محیطی یا کلیدزنجیر سیستم‌عامل استفاده کنید. مدیریت رمزها را برای جزئیات ببینید. :::

مرحله ۸: دعوت ربات

قبل از اینکه ربات بتواند در کانالی پیام بخواند یا بفرستد، باید آن را دعوت کنید:

۱. کانال Slack مورد نظر را باز کنید ۲. /invite @Triggerfish تایپ کنید (یا هر نامی که برای برنامه انتخاب کردید)

ربات همچنین می‌تواند بدون دعوت به کانال، پیام‌های مستقیم دریافت کند.

مرحله ۹: شروع Triggerfish

bash
triggerfish stop && triggerfish start

در کانالی که ربات حاضر است پیامی بفرستید یا مستقیماً به آن DM بدهید تا اتصال را تأیید کنید.

هویت مالک

Triggerfish از جریان OAuth Slack برای تأیید مالک استفاده می‌کند. وقتی پیامی می‌رسد، آداپتور شناسه کاربر Slack فرستنده را با ownerId پیکربندی‌شده مقایسه می‌کند:

  • مطابقت — دستور مالک
  • عدم مطابقت — ورودی خارجی با Taint PUBLIC

عضویت فضای کاری

برای طبقه‌بندی گیرنده، عضویت فضای کاری Slack تعیین می‌کند که آیا کاربر INTERNAL یا EXTERNAL است:

  • اعضای عادی فضای کاری INTERNAL هستند
  • کاربران خارجی Slack Connect EXTERNAL هستند
  • کاربران مهمان EXTERNAL هستند

محدودیت‌های پیام

Slack از پیام‌های تا ۴۰٬۰۰۰ کاراکتر پشتیبانی می‌کند. پیام‌هایی که از این محدودیت فراتر روند قطع می‌شوند. برای اکثر پاسخ‌های عامل، هرگز به این محدودیت نمی‌رسیم.

نشانگرهای تایپ

Triggerfish وقتی عامل در حال پردازش درخواست است، نشانگرهای تایپ به Slack می‌فرستد. Slack رویدادهای تایپ ورودی را به ربات‌ها افشا نمی‌کند، بنابراین این فقط ارسال است.

چت گروهی

ربات می‌تواند در کانال‌های گروهی شرکت کند. رفتار گروه را در triggerfish.yaml پیکربندی کنید:

yaml
groups:
  default_behavior: "mentioned-only"
  overrides:
    - channel: slack
      channel_name: "#ai-assistant"
      behavior: "always"
رفتارتوضیحات
mentioned-onlyفقط وقتی ربات @mention شود پاسخ می‌دهد
alwaysبه تمام پیام‌ها در کانال پاسخ می‌دهد

تغییر طبقه‌بندی

yaml
channels:
  slack:
    classification: INTERNAL

سطوح معتبر: PUBLIC، INTERNAL، CONFIDENTIAL، RESTRICTED.