chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-06 06:59:24 +00:00
parent 826178bb34
commit 8f7c5c72eb

View File

@ -1,29 +1,29 @@
---
read_when:
- Налаштування Slack або налагодження режиму socket/HTTP у Slack
summary: Налаштування Slack і поведінка під час роботи (Socket Mode + HTTP Events API)
summary: Налаштування Slack і поведінка під час роботи (Socket Mode + URL-адреси HTTP Request)
title: Slack
x-i18n:
generated_at: "2026-04-05T20:43:34Z"
generated_at: "2026-04-06T06:59:24Z"
model: gpt-5.4
provider: openai
source_hash: 7e4ff2ce7d92276d62f4f3d3693ddb56ca163d5fdc2f1082ff7ba3421fada69c
source_hash: 471421a34e5ff20dfc46dab85422d2e814524068c8466d0738448cd5d64d415b
source_path: channels/slack.md
workflow: 15
---
# Slack
Статус: готовий до використання у production для особистих повідомлень і каналів через інтеграції застосунку Slack. Типовий режим — Socket Mode; режим HTTP Events API також підтримується.
Статус: готово до використання в production для приватних повідомлень + каналів через інтеграції застосунку Slack. Режим за замовчуванням — Socket Mode; URL-адреси HTTP Request також підтримуються.
<CardGroup cols={3}>
<Card title="Сполучення" icon="link" href="/uk/channels/pairing">
Особисті повідомлення Slack типово використовують режим сполучення.
<Card title="Підключення" icon="link" href="/uk/channels/pairing">
Приватні повідомлення Slack за замовчуванням використовують режим підключення.
</Card>
<Card title="Slash-команди" icon="terminal" href="/uk/tools/slash-commands">
<Card title="Слеш-команди" icon="terminal" href="/uk/tools/slash-commands">
Вбудована поведінка команд і каталог команд.
</Card>
<Card title="Усунення проблем із каналами" icon="wrench" href="/uk/channels/troubleshooting">
<Card title="Усунення несправностей каналів" icon="wrench" href="/uk/channels/troubleshooting">
Міжканальна діагностика та сценарії відновлення.
</Card>
</CardGroup>
@ -31,14 +31,14 @@ x-i18n:
## Швидке налаштування
<Tabs>
<Tab title="Socket Mode (типово)">
<Tab title="Socket Mode (за замовчуванням)">
<Steps>
<Step title="Створіть застосунок Slack і токени">
У налаштуваннях застосунку Slack:
- увімкніть **Socket Mode**
- створіть **App Token** (`xapp-...`) з `connections:write`
- установіть застосунок і скопіюйте **Bot Token** (`xoxb-...`)
- встановіть застосунок і скопіюйте **Bot Token** (`xoxb-...`)
</Step>
<Step title="Налаштуйте OpenClaw">
@ -75,7 +75,7 @@ SLACK_BOT_TOKEN=xoxb-...
- `channel_rename`
- `pin_added`, `pin_removed`
Також увімкніть **Messages Tab** у App Home для особистих повідомлень.
Також увімкніть **Messages Tab** у App Home для приватних повідомлень.
</Step>
<Step title="Запустіть gateway">
@ -89,13 +89,13 @@ openclaw gateway
</Tab>
<Tab title="Режим HTTP Events API">
<Tab title="URL-адреси HTTP Request">
<Steps>
<Step title="Налаштуйте застосунок Slack для HTTP">
- установіть режим HTTP (`channels.slack.mode="http"`)
- встановіть режим HTTP (`channels.slack.mode="http"`)
- скопіюйте **Signing Secret** Slack
- установіть однаковий Request URL для Event Subscriptions, Interactivity і Slash command на той самий шлях webhook (типово `/slack/events`)
- встановіть однаковий Request URL для Event Subscriptions, Interactivity і Slash command на той самий шлях webhook (типово `/slack/events`)
</Step>
@ -118,9 +118,9 @@ openclaw gateway
</Step>
<Step title="Використовуйте унікальні шляхи webhook для HTTP з кількома обліковими записами">
Режим HTTP для кількох облікових записів підтримується.
Підтримується HTTP-режим для кожного облікового запису окремо.
Надайте кожному обліковому запису окремий `webhookPath`, щоб реєстрації не конфліктували.
Призначте кожному обліковому запису окремий `webhookPath`, щоб реєстрації не конфліктували.
</Step>
</Steps>
@ -216,7 +216,7 @@ openclaw gateway
- `reactions:read`
- `pins:read`
- `emoji:read`
- `search:read` (якщо ви залежите від читання пошуку Slack)
- `search:read` (якщо ви покладаєтеся на читання пошуку Slack)
</Accordion>
</AccordionGroup>
@ -224,62 +224,62 @@ openclaw gateway
## Модель токенів
- `botToken` + `appToken` обов'язкові для Socket Mode.
- HTTP-режим потребує `botToken` + `signingSecret`.
- `botToken`, `appToken`, `signingSecret` і `userToken` приймають звичайні рядки
або об'єкти SecretRef.
- Токени з конфігурації мають пріоритет над резервними значеннями з env.
- Резервні значення з env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовуються лише до облікового запису за замовчуванням.
- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного значення з env) і типово працює в режимі лише для читання (`userTokenReadOnly: true`).
- Необов'язково: додайте `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували ідентичність активного агента (власні `username` та icon). Для `icon_emoji` використовується синтаксис `:emoji_name:`.
- Для HTTP-режиму потрібні `botToken` + `signingSecret`.
- `botToken`, `appToken`, `signingSecret` і `userToken` приймають звичайні текстові
рядки або об'єкти SecretRef.
- Токени з конфігурації мають пріоритет над резервним значенням з env.
- Резервне значення з env `SLACK_BOT_TOKEN` / `SLACK_APP_TOKEN` застосовується лише до облікового запису за замовчуванням.
- `userToken` (`xoxp-...`) доступний лише в конфігурації (без резервного значення з env) і за замовчуванням працює в режимі лише читання (`userTokenReadOnly: true`).
- Необов'язково: додайте `chat:write.customize`, якщо хочете, щоб вихідні повідомлення використовували активну ідентичність агента (власні `username` та icon). `icon_emoji` використовує синтаксис `:emoji_name:`.
Поведінка знімка стану:
Поведінка знімка статусу:
- Перевірка облікового запису Slack відстежує поля `*Source` і `*Status`
для кожних облікових даних (`botToken`, `appToken`, `signingSecret`, `userToken`).
для кожного облікового запису (`botToken`, `appToken`, `signingSecret`, `userToken`).
- Статус може бути `available`, `configured_unavailable` або `missing`.
- `configured_unavailable` означає, що обліковий запис налаштовано через SecretRef
або інше не-inline джерело секретів, але поточний шлях команди/виконання
не зміг визначити фактичне значення.
або інше не-inline джерело секретів, але поточна команда/шлях виконання
не змогли визначити фактичне значення.
- У HTTP-режимі включається `signingSecretStatus`; у Socket Mode
обов'язковою парою є `botTokenStatus` + `appTokenStatus`.
потрібною парою є `botTokenStatus` + `appTokenStatus`.
<Tip>
Для дій/читання каталогів за наявності налаштування може надаватися перевага токену користувача. Для запису пріоритетним лишається токен бота; запис через токен користувача дозволено лише коли `userTokenReadOnly: false` і токен бота недоступний.
Для дій/читання каталогів за наявності конфігурації може віддаватися перевага токену користувача. Для запису пріоритетним залишається токен бота; запис через токен користувача дозволяється лише коли `userTokenReadOnly: false` і токен бота недоступний.
</Tip>
## Дії та обмеження
Дії Slack контролюються через `channels.slack.actions.*`.
Дії Slack керуються через `channels.slack.actions.*`.
Доступні групи дій у поточному інструментарії Slack:
| Група | Типово |
| Group | Default |
| ---------- | ------- |
| messages | увімкнено |
| reactions | увімкнено |
| pins | увімкнено |
| memberInfo | увімкнено |
| emojiList | увімкнено |
| messages | enabled |
| reactions | enabled |
| pins | enabled |
| memberInfo | enabled |
| emojiList | enabled |
Поточні дії з повідомленнями Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` та `emoji-list`.
Поточні дії для повідомлень Slack включають `send`, `upload-file`, `download-file`, `read`, `edit`, `delete`, `pin`, `unpin`, `list-pins`, `member-info` і `emoji-list`.
## Контроль доступу та маршрутизація
## Керування доступом і маршрутизація
<Tabs>
<Tab title="Політика особистих повідомлень">
`channels.slack.dmPolicy` контролює доступ до особистих повідомлень (застаріле: `channels.slack.dm.policy`):
<Tab title="Політика приватних повідомлень">
`channels.slack.dmPolicy` керує доступом до приватних повідомлень (застаріле: `channels.slack.dm.policy`):
- `pairing` (типово)
- `pairing` (за замовчуванням)
- `allowlist`
- `open` (потребує, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`)
- `open` (потрібно, щоб `channels.slack.allowFrom` містив `"*"`; застаріле: `channels.slack.dm.allowFrom`)
- `disabled`
Прапорці особистих повідомлень:
Прапорці приватних повідомлень:
- `dm.enabled` (типово true)
- `channels.slack.allowFrom` (рекомендовано)
- `dm.allowFrom` (застаріле)
- `dm.groupEnabled` (групові особисті повідомлення типово false)
- `dm.groupEnabled` (групові приватні повідомлення типово false)
- `dm.groupChannels` (необов'язковий allowlist MPIM)
Пріоритет для кількох облікових записів:
@ -288,37 +288,37 @@ openclaw gateway
- Іменовані облікові записи успадковують `channels.slack.allowFrom`, якщо їхній власний `allowFrom` не задано.
- Іменовані облікові записи не успадковують `channels.slack.accounts.default.allowFrom`.
Сполучення в особистих повідомленнях використовує `openclaw pairing approve slack <code>`.
Підключення в приватних повідомленнях використовує `openclaw pairing approve slack <code>`.
</Tab>
<Tab title="Політика каналів">
`channels.slack.groupPolicy` контролює обробку каналів:
`channels.slack.groupPolicy` керує обробкою каналів:
- `open`
- `allowlist`
- `disabled`
Allowlist каналів міститься в `channels.slack.channels` і має використовувати стабільні ідентифікатори каналів.
Allowlist каналів зберігається в `channels.slack.channels` і має використовувати стабільні ID каналів.
Примітка щодо виконання: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час виконання використовується `groupPolicy="allowlist"` і записується попередження в журнал (навіть якщо задано `channels.defaults.groupPolicy`).
Примітка щодо роботи: якщо `channels.slack` повністю відсутній (налаштування лише через env), під час роботи використовується резервне значення `groupPolicy="allowlist"` і записується попередження в журнал (навіть якщо встановлено `channels.defaults.groupPolicy`).
Визначення імен/ідентифікаторів:
Визначення імені/ID:
- записи allowlist каналів і записи allowlist особистих повідомлень визначаються під час запуску, якщо доступ токена це дозволяє
- нерозв'язані записи з іменами каналів зберігаються як налаштовані, але типово ігноруються для маршрутизації
- вхідна авторизація та маршрутизація каналів типово працюють за ідентифікаторами; пряме зіставлення за username/slug потребує `channels.slack.dangerouslyAllowNameMatching: true`
- записи allowlist каналів і allowlist приватних повідомлень визначаються під час запуску, коли доступ токена це дозволяє
- записи з невизначеними назвами каналів зберігаються в конфігурації, але типово ігноруються для маршрутизації
- вхідна авторизація і маршрутизація каналів типово працюють за ID; пряме зіставлення імені користувача/sluга потребує `channels.slack.dangerouslyAllowNameMatching: true`
</Tab>
<Tab title="Згадки та користувачі каналів">
Повідомлення в каналах типово обмежуються згадками.
Повідомлення в каналах типово обмежені згадками.
Джерела згадок:
- явна згадка застосунку (`<@botId>`)
- шаблони regex для згадок (`agents.list[].groupChat.mentionPatterns`, резервне значення `messages.groupChat.mentionPatterns`)
- неявна поведінка reply-to-bot у треді
- неявна поведінка відповідей у гілці на бота
Керування для кожного каналу (`channels.slack.channels.<id>`; імена лише через визначення під час запуску або `dangerouslyAllowNameMatching`):
@ -328,22 +328,22 @@ openclaw gateway
- `skills`
- `systemPrompt`
- `tools`, `toolsBySender`
- формат ключів `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або підстановочний знак `"*"`
(застарілі ключі без префікса все ще зіставляються лише з `id:`)
- формат ключа `toolsBySender`: `id:`, `e164:`, `username:`, `name:` або шаблон `"*"`
(застарілі ключі без префікса досі зіставляються лише з `id:`)
</Tab>
</Tabs>
## Треди, сесії та теги відповідей
## Гілки, сесії та теги відповідей
- Особисті повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
- Із типовим `session.dmScope=main` особисті повідомлення Slack згортаються до основної сесії агента.
- Приватні повідомлення маршрутизуються як `direct`; канали — як `channel`; MPIM — як `group`.
- Із типовим `session.dmScope=main` приватні повідомлення Slack згортаються в основну сесію агента.
- Сесії каналів: `agent:<agentId>:slack:channel:<channelId>`.
- Відповіді в треді можуть створювати суфікси сесій тредів (`:thread:<threadTs>`), якщо це застосовно.
- Відповіді в гілках можуть створювати суфікси сесій гілок (`:thread:<threadTs>`), коли це застосовно.
- Типове значення `channels.slack.thread.historyScope``thread`; типове значення `thread.inheritParent``false`.
- `channels.slack.thread.initialHistoryLimit` визначає, скільки наявних повідомлень треду буде отримано під час запуску нової сесії треду (типово `20`; установіть `0`, щоб вимкнути).
- `channels.slack.thread.initialHistoryLimit` керує тим, скільки наявних повідомлень у гілці буде отримано під час початку нової сесії гілки (типово `20`; установіть `0`, щоб вимкнути).
Параметри тредів відповідей:
Керування гілками відповідей:
- `channels.slack.replyToMode`: `off|first|all|batched` (типово `off`)
- `channels.slack.replyToModeByChatType`: для `direct|group|channel`
@ -354,9 +354,9 @@ openclaw gateway
- `[[reply_to_current]]`
- `[[reply_to:<id>]]`
Примітка: `replyToMode="off"` вимикає **усі** треди відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все ще враховуються в режимі `"off"`. Різниця відображає моделі тредів на цих платформах: у Slack треди приховують повідомлення з каналу, тоді як у Telegram відповіді лишаються видимими в основному потоці чату.
Примітка: `replyToMode="off"` вимикає **усі** гілки відповідей у Slack, включно з явними тегами `[[reply_to_*]]`. Це відрізняється від Telegram, де явні теги все ще враховуються в режимі `"off"`. Відмінність відображає моделі гілок на платформах: у Slack гілки приховують повідомлення з каналу, тоді як у Telegram відповіді залишаються видимими в основному потоці чату.
## Реакції-підтвердження
## Реакції підтвердження
`ackReaction` надсилає emoji-підтвердження, поки OpenClaw обробляє вхідне повідомлення.
@ -369,25 +369,25 @@ openclaw gateway
Примітки:
- Slack очікує короткі коди (наприклад, `"eyes"`).
- Slack очікує shortcode (наприклад `"eyes"`).
- Використовуйте `""`, щоб вимкнути реакцію для облікового запису Slack або глобально.
## Потокова передача тексту
## Потокове передавання тексту
`channels.slack.streaming` контролює поведінку попереднього перегляду в реальному часі:
`channels.slack.streaming` керує поведінкою попереднього перегляду в реальному часі:
- `off`: вимкнути потоковий попередній перегляд у реальному часі.
- `partial` (типово): замінювати текст попереднього перегляду останнім частковим результатом.
- `block`: додавати фрагментовані оновлення попереднього перегляду.
- `progress`: показувати текст стану прогресу під час генерації, а потім надсилати фінальний текст.
- `off`: вимкнути потоковий попередній перегляд.
- `partial` (за замовчуванням): замінювати текст попереднього перегляду останнім частковим виводом.
- `block`: додавати оновлення попереднього перегляду частинами.
- `progress`: показувати текст статусу прогресу під час генерації, а потім надсилати фінальний текст.
`channels.slack.nativeStreaming` контролює вбудовану потокову передачу тексту Slack, коли `streaming` має значення `partial` (типово: `true`).
`channels.slack.nativeStreaming` керує вбудованим потоковим передаванням тексту Slack, коли `streaming` має значення `partial` (типово: `true`).
- Щоб з'явилася вбудована потокова передача тексту, має бути доступний тред відповіді. Вибір треду й далі визначається `replyToMode`. Без нього використовується звичайний чернетковий попередній перегляд.
- Для медіа та нетекстових payload використовується звичайна доставка.
- Якщо потокова передача переривається посеред відповіді, OpenClaw повертається до звичайної доставки для решти payload.
- Щоб з'явилося вбудоване потокове передавання тексту, має бути доступна гілка відповіді. Вибір гілки й надалі визначається `replyToMode`. Без неї використовується звичайний чернетковий попередній перегляд.
- Медіа та не текстові payload повертаються до звичайної доставки.
- Якщо потокове передавання зламається посеред відповіді, OpenClaw повернеться до звичайної доставки для решти payload.
Використовуйте чернетковий попередній перегляд замість вбудованої потокової передачі тексту Slack:
Використовуйте чернетковий попередній перегляд замість вбудованого потокового передавання тексту Slack:
```json5
{
@ -402,12 +402,12 @@ openclaw gateway
Застарілі ключі:
- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрується до `channels.slack.streaming`.
- булеве значення `channels.slack.streaming` автоматично мігрується до `channels.slack.nativeStreaming`.
- `channels.slack.streamMode` (`replace | status_final | append`) автоматично мігрує до `channels.slack.streaming`.
- булеве значення `channels.slack.streaming` автоматично мігрує до `channels.slack.nativeStreaming`.
## Резервна реакція друку
## Резервна реакція набору тексту
`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це особливо корисно поза відповідями в тредах, де використовується типовий індикатор стану "друкує...".
`typingReaction` додає тимчасову реакцію до вхідного повідомлення Slack, поки OpenClaw обробляє відповідь, а потім видаляє її після завершення виконання. Це особливо корисно поза відповідями в гілках, які використовують типовий індикатор статусу "is typing...".
Порядок визначення:
@ -416,69 +416,69 @@ openclaw gateway
Примітки:
- Slack очікує короткі коди (наприклад, `"hourglass_flowing_sand"`).
- Реакція виконується за принципом best-effort, а очищення автоматично намагається завершитися після відповіді або завершення шляху помилки.
- Slack очікує shortcode (наприклад `"hourglass_flowing_sand"`).
- Реакція є best-effort, а очищення намагається виконатися автоматично після завершення відповіді або сценарію помилки.
## Медіа, розбиття на частини та доставка
## Медіа, поділ на частини та доставка
<AccordionGroup>
<Accordion title="Вхідні вкладення">
Вкладення файлів Slack завантажуються з приватних URL, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження за розміром.
Вкладення файлів Slack завантажуються з приватних URL, розміщених у Slack (потік запитів з автентифікацією токеном), і записуються до сховища медіа, якщо отримання успішне та дозволяють обмеження розміру.
Типове обмеження розміру вхідних даних під час виконання — `20MB`, якщо його не перевизначено через `channels.slack.mediaMaxMb`.
Типове обмеження розміру вхідних даних під час роботи становить `20MB`, якщо не перевизначено через `channels.slack.mediaMaxMb`.
</Accordion>
<Accordion title="Вихідний текст і файли">
- текстові частини використовують `channels.slack.textChunkLimit` (типово 4000)
- `channels.slack.chunkMode="newline"` вмикає розбиття спершу за абзацами
- надсилання файлів використовує API завантаження Slack і може включати відповіді в тредах (`thread_ts`)
- обмеження вихідних медіа визначається через `channels.slack.mediaMaxMb`, якщо налаштовано; інакше надсилання в канали використовує типові MIME-обмеження з медіаконвеєра
- частини тексту використовують `channels.slack.textChunkLimit` (типово 4000)
- `channels.slack.chunkMode="newline"` вмикає поділ спочатку за абзацами
- надсилання файлів використовує API завантаження Slack і може включати відповіді в гілках (`thread_ts`)
- обмеження вихідних медіа визначається `channels.slack.mediaMaxMb`, якщо задано; інакше надсилання через канал використовують типові значення MIME-kind з конвеєра медіа
</Accordion>
<Accordion title="Цілі доставки">
Рекомендовані явні цілі:
Бажані явні цілі:
- `user:<id>` для особистих повідомлень
- `user:<id>` для приватних повідомлень
- `channel:<id>` для каналів
Особисті повідомлення Slack відкриваються через API розмов Slack під час надсилання до цілей користувача.
Приватні повідомлення Slack відкриваються через API conversations Slack під час надсилання до цілей користувача.
</Accordion>
</AccordionGroup>
## Команди та поведінка slash-команд
## Команди та поведінка слеш-команд
- Вбудований автоматичний режим команд для Slack **вимкнено** (`commands.native: "auto"` не вмикає вбудовані команди Slack).
- Вбудований автоматичний режим команд **вимкнено** для Slack (`commands.native: "auto"` не вмикає вбудовані команди Slack).
- Увімкніть вбудовані обробники команд Slack через `channels.slack.commands.native: true` (або глобально `commands.native: true`).
- Коли вбудовані команди ввімкнено, зареєструйте відповідні slash-команди в Slack (імена `/<command>`), з одним винятком:
- зареєструйте `/agentstatus` для команди стану (Slack резервує `/status`)
- Якщо вбудовані команди не ввімкнено, ви можете виконувати одну налаштовану slash-команду через `channels.slack.slashCommand`.
- Коли вбудовані команди ввімкнено, зареєструйте відповідні слеш-команди в Slack (імена `/<command>`), за одним винятком:
- зареєструйте `/agentstatus` для команди status (Slack резервує `/status`)
- Якщо вбудовані команди не ввімкнено, ви можете запускати одну налаштовану слеш-команду через `channels.slack.slashCommand`.
- Вбудовані меню аргументів тепер адаптують свою стратегію відображення:
- до 5 варіантів: блоки кнопок
- 6-100 варіантів: статичне меню вибору
- більше 100 варіантів: зовнішній вибір з асинхронною фільтрацією варіантів, якщо доступні обробники параметрів interactivity
- понад 100 варіантів: зовнішній вибір з асинхронною фільтрацією варіантів, коли доступні обробники інтерактивних параметрів
- якщо закодовані значення варіантів перевищують ліміти Slack, потік повертається до кнопок
- Для довгих payload варіантів меню аргументів slash-команд використовують діалог підтвердження перед передачею вибраного значення.
- Для довгих payload параметрів меню аргументів слеш-команд використовують діалог підтвердження перед відправленням вибраного значення.
Типові параметри slash-команд:
Типові налаштування слеш-команд:
- `enabled: false`
- `name: "openclaw"`
- `sessionPrefix: "slack:slash"`
- `ephemeral: true`
Сесії slash-команд використовують ізольовані ключі:
Сесії слеш-команд використовують ізольовані ключі:
- `agent:<agentId>:slack:slash:<userId>`
і все одно спрямовують виконання команд до сесії цільової розмови (`CommandTargetSessionKey`).
і все одно маршрутизують виконання команди щодо цільової сесії розмови (`CommandTargetSessionKey`).
## Інтерактивні відповіді
Slack може відображати інтерактивні елементи відповідей, створених агентом, але ця функція типово вимкнена.
Slack може відображати інтерактивні елементи керування відповідями, створеними агентом, але ця функція за замовчуванням вимкнена.
Увімкніть її глобально:
Увімкнути глобально:
```json5
{
@ -492,7 +492,7 @@ Slack може відображати інтерактивні елементи
}
```
Або увімкніть лише для одного облікового запису Slack:
Або увімкнути лише для одного облікового запису Slack:
```json5
{
@ -510,43 +510,43 @@ Slack може відображати інтерактивні елементи
}
```
Коли функцію ввімкнено, агенти можуть виводити директиви відповідей лише для Slack:
Коли функцію увімкнено, агенти можуть надсилати директиви відповідей лише для Slack:
- `[[slack_buttons: Approve:approve, Reject:reject]]`
- `[[slack_select: Choose a target | Canary:canary, Production:production]]`
Ці директиви компілюються в Slack Block Kit і повертають натискання або вибір назад через наявний шлях подій взаємодії Slack.
Ці директиви компілюються в Slack Block Kit і маршрутизують натискання або вибір назад через наявний шлях подій взаємодії Slack.
Примітки:
- Це UI, специфічний для Slack. Інші канали не перекладають директиви Slack Block Kit у власні системи кнопок.
- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не сирі значення, створені агентом.
- Якщо згенеровані інтерактивні блоки перевищують обмеження Slack Block Kit, OpenClaw повертається до початкової текстової відповіді замість надсилання невалідного payload blocks.
- Це специфічний для Slack UI. Інші канали не перетворюють директиви Slack Block Kit у власні системи кнопок.
- Значення інтерактивних callback — це непрозорі токени, згенеровані OpenClaw, а не вихідні значення, створені агентом.
- Якщо згенеровані інтерактивні блоки перевищать ліміти Slack Block Kit, OpenClaw повернеться до початкової текстової відповіді замість надсилання недійсного payload blocks.
## Підтвердження exec у Slack
Slack може виступати як вбудований клієнт підтвердження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала.
Slack може працювати як вбудований клієнт підтвердження з інтерактивними кнопками та взаємодіями замість повернення до Web UI або термінала.
- Підтвердження exec використовують `channels.slack.execApprovals.*` для вбудованої маршрутизації в особисті повідомлення/канали.
- Підтвердження plugin також можуть визначатися через ту саму вбудовану поверхню кнопок Slack, коли запит уже надходить у Slack, а тип ідентифікатора підтвердження — `plugin:`.
- Авторизація затверджувачів і далі примусово застосовується: лише користувачі, визначені як затверджувачі, можуть схвалювати або відхиляти запити через Slack.
- Підтвердження exec використовують `channels.slack.execApprovals.*` для вбудованої маршрутизації приватних повідомлень/каналів.
- Підтвердження plugin також можуть визначатися через ту саму вбудовану поверхню кнопок Slack, коли запит уже потрапляє в Slack і тип id підтвердження — `plugin:`.
- Авторизація того, хто підтверджує, і далі застосовується: лише користувачі, визначені як approvers, можуть підтверджувати або відхиляти запити через Slack.
Для цього використовується та сама спільна поверхня кнопок підтвердження, що й для інших каналів. Коли у налаштуваннях застосунку Slack увімкнено `interactivity`, запити на підтвердження відображаються як кнопки Block Kit безпосередньо в розмові.
Це використовує ту саму спільну поверхню кнопок підтвердження, що й інші канали. Якщо у налаштуваннях застосунку Slack увімкнено `interactivity`, запити на підтвердження відображаються як кнопки Block Kit безпосередньо в розмові.
Коли ці кнопки присутні, вони є основним UX підтвердження; OpenClaw
має включати ручну команду `/approve` лише тоді, коли результат інструмента вказує, що підтвердження в чаті недоступні або ручне підтвердження є єдиним шляхом.
Шлях конфігурації:
- `channels.slack.execApprovals.enabled`
- `channels.slack.execApprovals.approvers` (необов'язково; за можливості використовується резервне значення `commands.ownerAllowFrom`)
- `channels.slack.execApprovals.approvers` (необов'язково; використовує резервне значення `commands.ownerAllowFrom`, коли можливо)
- `channels.slack.execApprovals.target` (`dm` | `channel` | `both`, типово: `dm`)
- `agentFilter`, `sessionFilter`
Slack автоматично вмикає вбудовані підтвердження exec, коли `enabled` не задано або має значення `"auto"` і визначається принаймні один
затверджувач. Установіть `enabled: false`, щоб явно вимкнути Slack як вбудований клієнт підтвердження.
Установіть `enabled: true`, щоб примусово ввімкнути вбудовані підтвердження, коли затверджувачі визначаються.
approver. Установіть `enabled: false`, щоб явно вимкнути Slack як вбудований клієнт підтвердження.
Установіть `enabled: true`, щоб примусово ввімкнути вбудовані підтвердження, коли approvers визначаються.
Типова поведінка без явної конфігурації підтверджень exec для Slack:
Типова поведінка без явної конфігурації підтвердження exec для Slack:
```json5
{
@ -556,8 +556,8 @@ Slack автоматично вмикає вбудовані підтвердж
}
```
Явна вбудована конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити затверджувачів, додати фільтри або
використовувати доставку в початковий чат:
Явна вбудована конфігурація Slack потрібна лише тоді, коли ви хочете перевизначити approvers, додати фільтри або
увімкнути доставку до початкового чату:
```json5
{
@ -574,23 +574,23 @@ Slack автоматично вмикає вбудовані підтвердж
```
Спільне переспрямування `approvals.exec` є окремим. Використовуйте його лише тоді, коли запити на підтвердження exec також мають
маршрутизуватися до інших чатів або явно позасмугових цілей. Спільне переспрямування `approvals.plugin` також є
окремим; вбудовані кнопки Slack все одно можуть визначати підтвердження plugin, коли ці запити вже надходять
маршрутизуватися до інших чатів або явно заданих зовнішніх цілей. Спільне переспрямування `approvals.plugin` також є
окремим; вбудовані кнопки Slack усе одно можуть визначати підтвердження plugin, коли ці запити вже надходять
у Slack.
У Slack-каналах і особистих повідомленнях, які вже підтримують команди, також працює `/approve` у тому самому чаті. Повну модель переспрямування підтверджень див. у [Підтвердження exec](/uk/tools/exec-approvals).
Команда `/approve` у тому ж чаті також працює в каналах і приватних повідомленнях Slack, які вже підтримують команди. Див. [Exec approvals](/uk/tools/exec-approvals), щоб ознайомитися з повною моделлю переспрямування підтверджень.
## Події та поведінка під час роботи
- Редагування/видалення повідомлень і thread broadcast відображаються в системні події.
- Події додавання/видалення реакцій відображаються в системні події.
- Події входу/виходу учасників, створення/перейменування каналу та додавання/видалення закріплень відображаються в системні події.
- `channel_id_changed` може мігрувати ключі конфігурації каналу, якщо ввімкнено `configWrites`.
- Метадані topic/purpose каналу вважаються недовіреним контекстом і можуть бути впроваджені в контекст маршрутизації.
- Початкове повідомлення треду та початкове заповнення контексту історії треду фільтруються за налаштованими allowlist відправників, якщо це застосовно.
- Дії блоків і взаємодії модальних вікон створюють структуровані системні події `Slack interaction: ...` із розширеними полями payload:
- Редагування/видалення повідомлень і трансляції гілок перетворюються на системні події.
- Події додавання/видалення реакцій перетворюються на системні події.
- Події входу/виходу учасників, створення/перейменування каналів і додавання/видалення закріплень перетворюються на системні події.
- `channel_id_changed` може мігрувати ключі конфігурації каналу, коли ввімкнено `configWrites`.
- Метадані теми/призначення каналу вважаються ненадійним контекстом і можуть бути вставлені в контекст маршрутизації.
- Ініціатор гілки та початкове заповнення контексту історії гілки фільтруються за налаштованими allowlist відправників, коли це застосовно.
- Дії блоків і взаємодії з модальними вікнами породжують структуровані системні події `Slack interaction: ...` з насиченими полями payload:
- дії блоків: вибрані значення, мітки, значення picker і метадані `workflow_*`
- події модальних вікон `view_submission` і `view_closed` з маршрутованими метаданими каналу та полями форм
- події модальних вікон `view_submission` і `view_closed` з маршрутизованими метаданими каналу та полями форми
## Вказівники на довідник конфігурації
@ -598,25 +598,25 @@ Slack автоматично вмикає вбудовані підтвердж
- [Довідник конфігурації - Slack](/uk/gateway/configuration-reference#slack)
Найважливіші поля Slack:
- mode/auth: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
- доступ до особистих повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний режим; тримайте вимкненим, якщо не потрібно)
Важливі поля Slack:
- режим/автентифікація: `mode`, `botToken`, `appToken`, `signingSecret`, `webhookPath`, `accounts.*`
- доступ до приватних повідомлень: `dm.enabled`, `dmPolicy`, `allowFrom` (застаріле: `dm.policy`, `dm.allowFrom`), `dm.groupEnabled`, `dm.groupChannels`
- перемикач сумісності: `dangerouslyAllowNameMatching` (аварійний варіант; не вмикайте без потреби)
- доступ до каналів: `groupPolicy`, `channels.*`, `channels.*.users`, `channels.*.requireMention`
- треди/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- гілки/історія: `replyToMode`, `replyToModeByChatType`, `thread.*`, `historyLimit`, `dmHistoryLimit`, `dms.*.historyLimit`
- доставка: `textChunkLimit`, `chunkMode`, `mediaMaxMb`, `streaming`, `nativeStreaming`
- операції/можливості: `configWrites`, `commands.native`, `slashCommand.*`, `actions.*`, `userToken`, `userTokenReadOnly`
## Усунення проблем
## Усунення несправностей
<AccordionGroup>
<Accordion title="Немає відповідей у каналах">
Перевірте в такому порядку:
Перевірте по черзі:
- `groupPolicy`
- allowlist каналів (`channels.slack.channels`)
- `requireMention`
- allowlist `users` для конкретного каналу
- allowlist `users` для кожного каналу
Корисні команди:
@ -628,12 +628,12 @@ openclaw doctor
</Accordion>
<Accordion title="Повідомлення в особистих повідомленнях ігноруються">
<Accordion title="Повідомлення в приватних повідомленнях ігноруються">
Перевірте:
- `channels.slack.dm.enabled`
- `channels.slack.dmPolicy` (або застаріле `channels.slack.dm.policy`)
- підтвердження сполучення / записи allowlist
- підтвердження підключення / записи allowlist
```bash
openclaw pairing list slack
@ -642,7 +642,7 @@ openclaw pairing list slack
</Accordion>
<Accordion title="Режим Socket не підключається">
Перевірте токени бота й застосунку та увімкнення Socket Mode в налаштуваннях застосунку Slack.
Перевірте дійсність токенів бота + застосунку та те, що Socket Mode увімкнено в налаштуваннях застосунку Slack.
Якщо `openclaw channels status --probe --json` показує `botTokenStatus` або
`appTokenStatus: "configured_unavailable"`, обліковий запис Slack
@ -656,20 +656,20 @@ openclaw pairing list slack
- signing secret
- шлях webhook
- Slack Request URL (Events + Interactivity + Slash Commands)
- URL-адреси Request URL у Slack (Events + Interactivity + Slash Commands)
- унікальний `webhookPath` для кожного HTTP-облікового запису
Якщо `signingSecretStatus: "configured_unavailable"` з'являється у знімках
облікового запису, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло
облікових записів, HTTP-обліковий запис налаштовано, але поточне середовище виконання не змогло
визначити signing secret, що зберігається через SecretRef.
</Accordion>
<Accordion title="Вбудовані/slash-команди не спрацьовують">
Перевірте, що саме ви мали на увазі:
<Accordion title="Вбудовані/слеш-команди не спрацьовують">
Переконайтеся, що ви мали на увазі:
- режим вбудованих команд (`channels.slack.commands.native: true`) з відповідними зареєстрованими в Slack slash-командами
- або режим однієї slash-команди (`channels.slack.slashCommand.enabled: true`)
- режим вбудованих команд (`channels.slack.commands.native: true`) з відповідними слеш-командами, зареєстрованими в Slack
- або режим однієї слеш-команди (`channels.slack.slashCommand.enabled: true`)
Також перевірте `commands.useAccessGroups` і allowlist каналів/користувачів.
@ -678,10 +678,10 @@ openclaw pairing list slack
## Пов'язане
- [Сполучення](/uk/channels/pairing)
- [Підключення](/uk/channels/pairing)
- [Групи](/uk/channels/groups)
- [Безпека](/uk/gateway/security)
- [Маршрутизація каналів](/uk/channels/channel-routing)
- [Усунення проблем](/uk/channels/troubleshooting)
- [Усунення несправностей](/uk/channels/troubleshooting)
- [Конфігурація](/uk/gateway/configuration)
- [Slash-команди](/uk/tools/slash-commands)
- [Слеш-команди](/uk/tools/slash-commands)