chore(i18n): refresh uk translations

This commit is contained in:
openclaw-docs-i18n[bot] 2026-04-21 03:03:54 +00:00
parent ea0d04a638
commit 5274f09e45

View File

@ -3,24 +3,24 @@ read_when:
- Налаштування каналу BlueBubbles
- Усунення проблем зі сполученням Webhook
- Налаштування iMessage на macOS
summary: iMessage через сервер BlueBubbles для macOS (REST-надсилання/отримання, друк, реакції, сполучення, розширені дії).
summary: iMessage через сервер BlueBubbles для macOS (REST надсилання/отримання, набір тексту, реакції, сполучення, розширені дії).
title: BlueBubbles
x-i18n:
generated_at: "2026-04-20T17:06:46Z"
generated_at: "2026-04-21T03:02:44Z"
model: gpt-5.4
provider: openai
source_hash: 5d7186ba92aa63bc811f874e5a910af884c17ad7d6394b5624eec63e17adc2f6
source_hash: b3d8d617fc86ca1b191ff4dd2ae26b464e4d3f456a79c67b484a3a76d75de0d2
source_path: channels/bluebubbles.md
workflow: 15
---
# BlueBubbles (macOS REST)
Статус: вбудований Plugin, який взаємодіє із сервером BlueBubbles для macOS через HTTP. **Рекомендовано для інтеграції iMessage** завдяки багатшому API та простішому налаштуванню порівняно зі застарілим каналом imsg.
Статус: вбудований Plugin, який взаємодіє із сервером BlueBubbles для macOS через HTTP. **Рекомендовано для інтеграції з iMessage** завдяки багатшому API та простішому налаштуванню порівняно зі застарілим каналом imsg.
## Вбудований Plugin
Поточні випуски OpenClaw постачаються з BlueBubbles, тому звичайним пакетованим збіркам не
Поточні випуски OpenClaw постачаються з BlueBubbles, тому звичайним пакетним збіркам не
потрібен окремий крок `openclaw plugins install`.
## Огляд
@ -28,16 +28,16 @@ x-i18n:
- Працює на macOS через допоміжний застосунок BlueBubbles ([bluebubbles.app](https://bluebubbles.app)).
- Рекомендовано/протестовано: macOS Sequoia (15). macOS Tahoe (26) працює; редагування наразі не працює на Tahoe, а оновлення значка групи можуть повідомляти про успіх, але не синхронізуватися.
- OpenClaw взаємодіє з ним через його REST API (`GET /api/v1/ping`, `POST /message/text`, `POST /chat/:id/*`).
- Вхідні повідомлення надходять через Webhook; вихідні відповіді, індикатори набору, сповіщення про прочитання та tapback-реакції виконуються через REST-виклики.
- Вкладення та стікери обробляються як вхідні медіа (і за можливості передаються агенту).
- Сполучення/список дозволених працює так само, як і в інших каналах (`/channels/pairing` тощо) за допомогою `channels.bluebubbles.allowFrom` + кодів сполучення.
- Реакції відображаються як системні події так само, як у Slack/Telegram, щоб агенти могли "згадати" їх перед відповіддю.
- Розширені можливості: редагування, скасування надсилання, гілки відповідей, ефекти повідомлень, керування групами.
- Вхідні повідомлення надходять через Webhook; вихідні відповіді, індикатори набору тексту, сповіщення про прочитання та tapback — це REST-виклики.
- Вкладення та стікери обробляються як вхідні медіа (і передаються агенту, коли це можливо).
- Сполучення/allowlist працює так само, як і в інших каналах (`/channels/pairing` тощо) з `channels.bluebubbles.allowFrom` + кодами сполучення.
- Реакції відображаються як системні події, так само як у Slack/Telegram, тож агенти можуть «згадувати» їх перед відповіддю.
- Розширені можливості: редагування, скасування надсилання, відповіді у тредах, ефекти повідомлень, керування групами.
## Швидкий початок
1. Встановіть сервер BlueBubbles на ваш Mac (дотримуйтеся інструкцій на [bluebubbles.app/install](https://bluebubbles.app/install)).
2. У конфігурації BlueBubbles увімкніть web API і задайте пароль.
2. У конфігурації BlueBubbles увімкніть web API і встановіть пароль.
3. Запустіть `openclaw onboard` і виберіть BlueBubbles, або налаштуйте вручну:
```json5
@ -58,13 +58,13 @@ x-i18n:
Примітка щодо безпеки:
- Завжди задавайте пароль для Webhook.
- Автентифікація Webhook є завжди обов’язковою. OpenClaw відхиляє запити Webhook BlueBubbles, якщо вони не містять пароль/guid, що збігається з `channels.bluebubbles.password` (наприклад, `?password=<password>` або `x-password`), незалежно від топології loopback/проксі.
- Обов’язково встановіть пароль Webhook.
- Автентифікація Webhook завжди обов’язкова. OpenClaw відхиляє запити Webhook BlueBubbles, якщо вони не містять пароль/guid, що збігається з `channels.bluebubbles.password` (наприклад, `?password=<password>` або `x-password`), незалежно від топології loopback/проксі.
- Автентифікація за паролем перевіряється до читання/розбору повних тіл Webhook.
## Підтримання активності Messages.app (VM / headless-середовища)
## Підтримання Messages.app активним (VM / безголові середовища)
У деяких середовищах macOS VM / always-on Messages.app може переходити в “idle” (вхідні події припиняються, доки застосунок не буде відкрито/виведено на передній план). Простий обхідний шлях — **торкатися Messages кожні 5 хвилин** за допомогою AppleScript + LaunchAgent.
У деяких середовищах macOS VM / always-on може статися так, що Messages.app переходить у «неактивний» стан (вхідні події припиняються, доки застосунок не буде відкрито/виведено на передній план). Простий обхідний шлях — **пінгувати Messages кожні 5 хвилин** за допомогою AppleScript + LaunchAgent.
### 1) Збережіть AppleScript
@ -127,7 +127,7 @@ end try
Примітки:
- Це запускається **кожні 300 секунд** і **під час входу в систему**.
- Перший запуск може викликати запити macOS на **Automation** (`osascript` → Messages). Підтвердіть їх у тій самій користувацькій сесії, де працює LaunchAgent.
- Під час першого запуску можуть з’явитися запити macOS **Automation** (`osascript` → Messages). Підтвердьте їх у тому самому користувацькому сеансі, у якому працює LaunchAgent.
Завантажте його:
@ -136,9 +136,9 @@ launchctl unload ~/Library/LaunchAgents/com.user.poke-messages.plist 2>/dev/null
launchctl load ~/Library/LaunchAgents/com.user.poke-messages.plist
```
## Onboarding
## Онбординг
BlueBubbles доступний в інтерактивному Onboarding:
BlueBubbles доступний в інтерактивному онбордингу:
```
openclaw onboard
@ -150,7 +150,7 @@ openclaw onboard
- **Password** (обов’язково): пароль API з налаштувань BlueBubbles Server
- **Webhook path** (необов’язково): типово `/bluebubbles-webhook`
- **Політика DM**: pairing, allowlist, open або disabled
- **Список дозволених**: номери телефонів, email-адреси або цілі чатів
- **Список дозволених**: номери телефонів, електронні адреси або цілі чатів
Ви також можете додати BlueBubbles через CLI:
@ -158,30 +158,30 @@ openclaw onboard
openclaw channels add bluebubbles --http-url http://192.168.1.100:1234 --password <password>
```
## Керування доступом (DM + групи)
## Контроль доступу (DM + групи)
DM:
- Типово: `channels.bluebubbles.dmPolicy = "pairing"`.
- Невідомі відправники отримують код сполучення; повідомлення ігноруються, доки їх не буде схвалено (коди спливають через 1 годину).
- Типове значення: `channels.bluebubbles.dmPolicy = "pairing"`.
- Невідомі відправники отримують код сполучення; повідомлення ігноруються до схвалення (строк дії кодів спливає через 1 годину).
- Схвалення через:
- `openclaw pairing list bluebubbles`
- `openclaw pairing approve bluebubbles <CODE>`
- Сполучення є типовим обміном токенами. Деталі: [Сполучення](/uk/channels/pairing)
- Сполучення — типовий механізм обміну токенами. Докладніше: [Сполучення](/uk/channels/pairing)
Групи:
- `channels.bluebubbles.groupPolicy = open | allowlist | disabled` (типово: `allowlist`).
- `channels.bluebubbles.groupAllowFrom` визначає, хто може запускати дії в групах, коли встановлено `allowlist`.
- `channels.bluebubbles.groupAllowFrom` визначає, хто може ініціювати взаємодію в групах, коли встановлено `allowlist`.
### Збагачення імен контактів (macOS, необов’язково)
Webhook груп BlueBubbles часто містять лише сирі адреси учасників. Якщо ви хочете, щоб контекст `GroupMembers` натомість показував локальні імена контактів, на macOS можна ввімкнути локальне збагачення з Contacts:
Webhook груп BlueBubbles часто містять лише необроблені адреси учасників. Якщо ви хочете, щоб контекст `GroupMembers` натомість показував локальні імена контактів, у macOS можна ввімкнути локальне збагачення через Contacts:
- `channels.bluebubbles.enrichGroupParticipantsFromContacts = true` вмикає пошук. Типово: `false`.
- Пошук виконується лише після того, як груповий доступ, авторизація команд і mention gating дозволили повідомлення.
- Збагачуються лише безіменні телефонні учасники.
- Сирі номери телефонів залишаються резервним варіантом, якщо локальний збіг не знайдено.
- `channels.bluebubbles.enrichGroupParticipantsFromContacts = true` вмикає пошук. Типове значення: `false`.
- Пошук виконується лише після того, як доступ до групи, авторизація команди та обмеження згадування дозволили пропустити повідомлення.
- Збагачуються лише неіменовані телефонні учасники.
- Необроблені номери телефонів залишаються резервним варіантом, якщо локальний збіг не знайдено.
```json5
{
@ -193,15 +193,15 @@ Webhook груп BlueBubbles часто містять лише сирі адр
}
```
### Mention gating (групи)
### Обмеження за згадуванням (групи)
BlueBubbles підтримує mention gating для групових чатів, як і iMessage/WhatsApp:
BlueBubbles підтримує обмеження за згадуванням для групових чатів, як в iMessage/WhatsApp:
- Використовує `agents.list[].groupChat.mentionPatterns` (або `messages.groupChat.mentionPatterns`) для виявлення згадок.
- Коли для групи увімкнено `requireMention`, агент відповідає лише тоді, коли його згадано.
- Керувальні команди від авторизованих відправників обходять mention gating.
- Використовує `agents.list[].groupChat.mentionPatterns` (або `messages.groupChat.mentionPatterns`) для виявлення згадувань.
- Коли для групи ввімкнено `requireMention`, агент відповідає лише тоді, коли його згадано.
- Керівні команди від авторизованих відправників обходять це обмеження.
Конфігурація для окремих груп:
Налаштування для окремих груп:
```json5
{
@ -220,20 +220,68 @@ BlueBubbles підтримує mention gating для групових чатів
### Обмеження команд
- Керувальні команди (наприклад, `/config`, `/model`) вимагають авторизації.
- Керівні команди (наприклад, `/config`, `/model`) потребують авторизації.
- Для визначення авторизації команд використовуються `allowFrom` і `groupAllowFrom`.
- Авторизовані відправники можуть виконувати керувальні команди навіть без згадки в групах.
- Авторизовані відправники можуть виконувати керівні команди навіть без згадування в групах.
### Системний промпт для окремої групи
Кожен запис у `channels.bluebubbles.groups.*` приймає необов’язковий рядок `systemPrompt`. Значення вбудовується в системний промпт агента на кожному ході, який обробляє повідомлення в цій групі, тож ви можете задавати образ або правила поведінки для окремих груп без редагування промптів агента:
```json5
{
channels: {
bluebubbles: {
groups: {
"iMessage;-;chat123": {
systemPrompt: "Відповідай не більш ніж 3 реченнями. Відтворюй невимушений тон групи.",
},
},
},
},
}
```
Ключ збігається з тим, що BlueBubbles повідомляє як `chatGuid` / `chatIdentifier` / числовий `chatId` для групи, а запис-шаблон `"*"` задає типове значення для кожної групи без точного збігу (той самий шаблон використовується `requireMention` і політиками інструментів для окремих груп). Точні збіги завжди мають пріоритет над шаблоном. DM ігнорують це поле; замість цього використовуйте налаштування промптів на рівні агента або облікового запису.
#### Практичний приклад: відповіді у тредах і реакції tapback (Private API)
Коли ввімкнено BlueBubbles Private API, вхідні повідомлення надходять із короткими ідентифікаторами повідомлень (наприклад, `[[reply_to:5]]`), і агент може викликати `action=reply`, щоб відповісти на конкретне повідомлення в треді, або `action=react`, щоб поставити tapback. `systemPrompt` для окремої групи — надійний спосіб змусити агента вибирати правильний інструмент:
```json5
{
channels: {
bluebubbles: {
groups: {
"iMessage;+;chat-family": {
systemPrompt: [
"Під час відповіді в цій групі завжди викликай action=reply з",
"messageId `[[reply_to:N]]` із контексту, щоб твоя відповідь ішла",
"під повідомленням, яке її спричинило. Ніколи не надсилай нове непов’язане повідомлення.",
"",
"Для коротких підтверджень ('ок', 'отримав', 'зроблю') використовуй",
"action=react з відповідним tapback emoji (❤️, 👍, 😂, ‼️, ❓)",
"замість надсилання текстової відповіді.",
].join(" "),
},
},
},
},
}
```
І tapback-реакції, і відповіді у тредах потребують BlueBubbles Private API; див. [Розширені дії](#advanced-actions) і [Ідентифікатори повідомлень](#message-ids-short-vs-full) щодо базової механіки.
## Прив’язки розмов ACP
Чати BlueBubbles можна перетворити на довготривалі робочі області ACP без зміни транспортного рівня.
Чати BlueBubbles можна перетворити на довготривалі робочі простори ACP без зміни транспортного рівня.
Швидкий операторський сценарій:
Швидкий робочий сценарій для операторів:
- Виконайте `/acp spawn codex --bind here` у DM або дозволеному груповому чаті.
- Майбутні повідомлення в цій самій розмові BlueBubbles спрямовуватимуться до створеної сесії ACP.
- Подальші повідомлення в цій самій розмові BlueBubbles маршрутизуються до створеної сесії ACP.
- `/new` і `/reset` скидають ту саму прив’язану сесію ACP на місці.
- `/acp close` закриває сесію ACP і видаляє прив’язку.
- `/acp close` закриває сесію ACP і прибирає прив’язку.
Також підтримуються налаштовані постійні прив’язки через записи верхнього рівня `bindings[]` з `type: "acp"` і `match.channel: "bluebubbles"`.
@ -244,7 +292,7 @@ BlueBubbles підтримує mention gating для групових чатів
- `chat_guid:<guid>`
- `chat_identifier:<identifier>`
Для стабільних прив’язок груп віддавайте перевагу `chat_id:*` або `chat_identifier:*`.
Для стабільних прив’язок груп надавайте перевагу `chat_id:*` або `chat_identifier:*`.
Приклад:
@ -280,9 +328,9 @@ BlueBubbles підтримує mention gating для групових чатів
## Набір тексту + сповіщення про прочитання
- **Індикатори набору**: надсилаються автоматично перед і під час генерації відповіді.
- **Індикатори набору тексту**: надсилаються автоматично до та під час генерації відповіді.
- **Сповіщення про прочитання**: керуються через `channels.bluebubbles.sendReadReceipts` (типово: `true`).
- **Індикатори набору**: OpenClaw надсилає події початку набору; BlueBubbles автоматично очищає стан набору після надсилання або тайм-ауту (ручна зупинка через DELETE ненадійна).
- **Індикатори набору тексту**: OpenClaw надсилає події початку набору; BlueBubbles автоматично очищає стан набору після надсилання або тайм-ауту (ручна зупинка через DELETE ненадійна).
```json5
{
@ -296,7 +344,7 @@ BlueBubbles підтримує mention gating для групових чатів
## Розширені дії
BlueBubbles підтримує розширені дії з повідомленнями, коли їх увімкнено в конфігурації:
BlueBubbles підтримує розширені дії з повідомленнями, якщо їх увімкнено в конфігурації:
```json5
{
@ -306,7 +354,7 @@ BlueBubbles підтримує розширені дії з повідомлен
reactions: true, // tapback-реакції (типово: true)
edit: true, // редагування надісланих повідомлень (macOS 13+, не працює на macOS 26 Tahoe)
unsend: true, // скасування надсилання повідомлень (macOS 13+)
reply: true, // гілки відповідей за GUID повідомлення
reply: true, // відповіді у тредах за GUID повідомлення
sendWithEffect: true, // ефекти повідомлень (slam, loud тощо)
renameGroup: true, // перейменування групових чатів
setGroupIcon: true, // встановлення значка/фото групового чату (нестабільно на macOS 26 Tahoe)
@ -322,39 +370,39 @@ BlueBubbles підтримує розширені дії з повідомлен
Доступні дії:
- **react**: додавання/видалення tapback-реакцій (`messageId`, `emoji`, `remove`)
- **edit**: редагування надісланого повідомлення (`messageId`, `text`)
- **unsend**: скасування надсилання повідомлення (`messageId`)
- **reply**: відповідь на конкретне повідомлення (`messageId`, `text`, `to`)
- **sendWithEffect**: надсилання з ефектом iMessage (`text`, `to`, `effectId`)
- **renameGroup**: перейменування групового чату (`chatGuid`, `displayName`)
- **setGroupIcon**: встановлення значка/фото групового чату (`chatGuid`, `media`) — нестабільно на macOS 26 Tahoe (API може повертати успіх, але значок не синхронізується).
- **addParticipant**: додавання когось до групи (`chatGuid`, `address`)
- **removeParticipant**: видалення когось із групи (`chatGuid`, `address`)
- **leaveGroup**: вихід із групового чату (`chatGuid`)
- **upload-file**: надсилання медіа/файлів (`to`, `buffer`, `filename`, `asVoice`)
- Голосові повідомлення: встановіть `asVoice: true` з аудіо **MP3** або **CAF**, щоб надіслати його як голосове повідомлення iMessage. BlueBubbles перетворює MP3 → CAF під час надсилання голосових повідомлень.
- Застарілий псевдонім: `sendAttachment` усе ще працює, але `upload-file` є канонічною назвою дії.
- **react**: Додати/видалити tapback-реакції (`messageId`, `emoji`, `remove`)
- **edit**: Відредагувати надіслане повідомлення (`messageId`, `text`)
- **unsend**: Скасувати надсилання повідомлення (`messageId`)
- **reply**: Відповісти на конкретне повідомлення (`messageId`, `text`, `to`)
- **sendWithEffect**: Надіслати з ефектом iMessage (`text`, `to`, `effectId`)
- **renameGroup**: Перейменувати груповий чат (`chatGuid`, `displayName`)
- **setGroupIcon**: Встановити значок/фото групового чату (`chatGuid`, `media`) — нестабільно на macOS 26 Tahoe (API може повертати успіх, але значок не синхронізується).
- **addParticipant**: Додати когось до групи (`chatGuid`, `address`)
- **removeParticipant**: Видалити когось із групи (`chatGuid`, `address`)
- **leaveGroup**: Вийти з групового чату (`chatGuid`)
- **upload-file**: Надіслати медіа/файли (`to`, `buffer`, `filename`, `asVoice`)
- Голосові повідомлення: установіть `asVoice: true` з аудіо **MP3** або **CAF**, щоб надіслати його як голосове повідомлення iMessage. BlueBubbles перетворює MP3 → CAF під час надсилання голосових повідомлень.
- Застарілий псевдонім: `sendAttachment` усе ще працює, але `upload-file` — канонічна назва дії.
### ID повідомлень (короткі vs повні)
### Ідентифікатори повідомлень (короткі й повні)
OpenClaw може показувати ороткі_ ID повідомлень (наприклад, `1`, `2`) для економії токенів.
OpenClaw може показувати ороткі_ ідентифікатори повідомлень (наприклад, `1`, `2`) для економії токенів.
- `MessageSid` / `ReplyToId` можуть бути короткими ID.
- `MessageSidFull` / `ReplyToIdFull` містять повні ID провайдера.
- Короткі ID зберігаються в пам’яті; вони можуть зникати після перезапуску або витіснення кешу.
- Дії приймають короткий або повний `messageId`, але короткі ID повернуть помилку, якщо вони більше недоступні.
- `MessageSid` / `ReplyToId` можуть бути короткими ідентифікаторами.
- `MessageSidFull` / `ReplyToIdFull` містять повні ідентифікатори провайдера.
- Короткі ідентифікатори зберігаються в пам’яті; вони можуть зникнути після перезапуску або очищення кешу.
- Дії приймають короткий або повний `messageId`, але короткі ідентифікатори спричинять помилку, якщо вони більше недоступні.
Використовуйте повні ID для довготривалих автоматизацій і зберігання:
Використовуйте повні ідентифікатори для довготривалих автоматизацій і зберігання:
- Шаблони: `{{MessageSidFull}}`, `{{ReplyToIdFull}}`
- Контекст: `MessageSidFull` / `ReplyToIdFull` у вхідному payload
- Контекст: `MessageSidFull` / `ReplyToIdFull` у вхідних payload
Див. [Конфігурація](/uk/gateway/configuration) щодо змінних шаблонів.
Див. [Configuration](/uk/gateway/configuration) щодо змінних шаблонів.
## Блокове потокове передавання
Керуйте тим, чи відповіді надсилатимуться як одне повідомлення, чи потоково блоками:
Керуйте тим, чи надсилаються відповіді як одне повідомлення, чи потоково блоками:
```json5
{
@ -366,38 +414,38 @@ OpenClaw може показувати _короткі_ ID повідомлен
}
```
## Медіа + ліміти
## Медіа + обмеження
- Вхідні вкладення завантажуються та зберігаються в кеші медіа.
- Ліміт медіа задається через `channels.bluebubbles.mediaMaxMb` для вхідних і вихідних медіа (типово: 8 MB).
- Вихідний текст розбивається на фрагменти відповідно до `channels.bluebubbles.textChunkLimit` (типово: 4000 символів).
- Обмеження медіа через `channels.bluebubbles.mediaMaxMb` для вхідних і вихідних медіа (типово: 8 MB).
- Вихідний текст ділиться на частини відповідно до `channels.bluebubbles.textChunkLimit` (типово: 4000 символів).
## Довідник з конфігурації
## Довідник із конфігурації
Повна конфігурація: [Конфігурація](/uk/gateway/configuration)
Повна конфігурація: [Configuration](/uk/gateway/configuration)
Параметри провайдера:
- `channels.bluebubbles.enabled`: Увімкнути/вимкнути канал.
- `channels.bluebubbles.serverUrl`: Базовий URL REST API BlueBubbles.
- `channels.bluebubbles.serverUrl`: Базова URL-адреса REST API BlueBubbles.
- `channels.bluebubbles.password`: Пароль API.
- `channels.bluebubbles.webhookPath`: Шлях endpoint Webhook (типово: `/bluebubbles-webhook`).
- `channels.bluebubbles.webhookPath`: Шлях кінцевої точки Webhook (типово: `/bluebubbles-webhook`).
- `channels.bluebubbles.dmPolicy`: `pairing | allowlist | open | disabled` (типово: `pairing`).
- `channels.bluebubbles.allowFrom`: Список дозволених для DM (ідентифікатори, email-адреси, номери E.164, `chat_id:*`, `chat_guid:*`).
- `channels.bluebubbles.allowFrom`: allowlist для DM (дескриптори, електронні адреси, номери E.164, `chat_id:*`, `chat_guid:*`).
- `channels.bluebubbles.groupPolicy`: `open | allowlist | disabled` (типово: `allowlist`).
- `channels.bluebubbles.groupAllowFrom`: Список дозволених відправників для груп.
- `channels.bluebubbles.enrichGroupParticipantsFromContacts`: На macOS необов’язково збагачує безіменних учасників групи з локальних Contacts після проходження перевірок. Типово: `false`.
- `channels.bluebubbles.groupAllowFrom`: allowlist відправників для груп.
- `channels.bluebubbles.enrichGroupParticipantsFromContacts`: У macOS необов’язково збагачує неіменованих учасників групи з локальних Contacts після проходження обмежень. Типове значення: `false`.
- `channels.bluebubbles.groups`: Конфігурація для окремих груп (`requireMention` тощо).
- `channels.bluebubbles.sendReadReceipts`: Надсилати сповіщення про прочитання (типово: `true`).
- `channels.bluebubbles.blockStreaming`: Увімкнути блокове потокове передавання (типово: `false`; потрібне для потокових відповідей).
- `channels.bluebubbles.blockStreaming`: Увімкнути блокове потокове передавання (типово: `false`; обов’язково для потокових відповідей).
- `channels.bluebubbles.textChunkLimit`: Розмір вихідного фрагмента в символах (типово: 4000).
- `channels.bluebubbles.sendTimeoutMs`: Тайм-аут на запит у мс для надсилання вихідного тексту через `/api/v1/message/text` (типово: 30000). Збільшуйте на системах macOS 26, де надсилання iMessage через Private API може зависати на 60+ секунд усередині фреймворка iMessage; наприклад, `45000` або `60000`. Перевірки, пошук чатів, реакції, редагування та перевірки стану наразі зберігають коротший типовий тайм-аут 10 с; розширення цього покриття на реакції та редагування заплановано як наступний крок. Перевизначення для окремого облікового запису: `channels.bluebubbles.accounts.<accountId>.sendTimeoutMs`.
- `channels.bluebubbles.chunkMode`: `length` (типово) розбиває лише при перевищенні `textChunkLimit`; `newline` розбиває за порожніми рядками (межами абзаців) перед розбиттям за довжиною.
- `channels.bluebubbles.mediaMaxMb`: Ліміт вхідних/вихідних медіа в MB (типово: 8).
- `channels.bluebubbles.mediaLocalRoots`: Явний список дозволених абсолютних локальних директорій для вихідних шляхів до локальних медіа. Надсилання локальних шляхів типово заборонене, якщо це не налаштовано. Перевизначення для окремого облікового запису: `channels.bluebubbles.accounts.<accountId>.mediaLocalRoots`.
- `channels.bluebubbles.historyLimit`: Максимальна кількість групових повідомлень для контексту (0 вимикає).
- `channels.bluebubbles.dmHistoryLimit`: Ліміт історії DM.
- `channels.bluebubbles.actions`: Увімкнути/вимкнути окремі дії.
- `channels.bluebubbles.sendTimeoutMs`: Тайм-аут на запит у мс для надсилання вихідного тексту через `/api/v1/message/text` (типово: 30000). Збільшуйте для середовищ macOS 26, де надсилання iMessage через Private API може зависати на 60+ секунд усередині фреймворку iMessage; наприклад, `45000` або `60000`. Перевірки, пошук чатів, реакції, редагування та перевірки працездатності наразі зберігають коротший типовий тайм-аут 10 с; розширення покриття на реакції та редагування заплановано як наступний крок. Перевизначення для окремого облікового запису: `channels.bluebubbles.accounts.<accountId>.sendTimeoutMs`.
- `channels.bluebubbles.chunkMode`: `length` (типово) ділить лише при перевищенні `textChunkLimit`; `newline` ділить за порожніми рядками (межами абзаців) перед поділом за довжиною.
- `channels.bluebubbles.mediaMaxMb`: Обмеження вхідних/вихідних медіа в MB (типово: 8).
- `channels.bluebubbles.mediaLocalRoots`: Явний allowlist абсолютних локальних каталогів, дозволених для вихідних локальних шляхів до медіа. Надсилання локальних шляхів типово заборонено, якщо це не налаштовано. Перевизначення для окремого облікового запису: `channels.bluebubbles.accounts.<accountId>.mediaLocalRoots`.
- `channels.bluebubbles.historyLimit`: Максимум групових повідомлень для контексту (0 вимикає).
- `channels.bluebubbles.dmHistoryLimit`: Обмеження історії DM.
- `channels.bluebubbles.actions`: Увімкнення/вимкнення окремих дій.
- `channels.bluebubbles.accounts`: Конфігурація кількох облікових записів.
Пов’язані глобальні параметри:
@ -409,35 +457,35 @@ OpenClaw може показувати _короткі_ ID повідомлен
Для стабільної маршрутизації надавайте перевагу `chat_guid`:
- `chat_guid:iMessage;-;+15555550123` (переважно для груп)
- `chat_guid:iMessage;-;+15555550123` (рекомендовано для груп)
- `chat_id:123`
- `chat_identifier:...`
- Прямі ідентифікатори: `+15555550123`, `user@example.com`
- Якщо для прямого ідентифікатора немає наявного DM-чату, OpenClaw створить його через `POST /api/v1/chat/new`. Для цього потрібно, щоб у BlueBubbles було ввімкнено Private API.
- Прямі дескриптори: `+15555550123`, `user@example.com`
- Якщо для прямого дескриптора немає наявного чату DM, OpenClaw створить його через `POST /api/v1/chat/new`. Для цього потрібно, щоб був увімкнений BlueBubbles Private API.
## Безпека
- Запити Webhook автентифікуються шляхом порівняння параметрів запиту `guid`/`password` або заголовків із `channels.bluebubbles.password`.
- Зберігайте пароль API і endpoint Webhook у таємниці (ставтеся до них як до облікових даних).
- Для автентифікації Webhook BlueBubbles немає обходу через localhost. Якщо ви проксіюєте трафік Webhook, зберігайте пароль BlueBubbles у запиті наскрізно. `gateway.trustedProxies` тут не замінює `channels.bluebubbles.password`. Див. [Безпека Gateway](/uk/gateway/security#reverse-proxy-configuration).
- Увімкніть HTTPS і правила фаєрвола на сервері BlueBubbles, якщо відкриваєте його поза межами вашої LAN.
- Зберігайте пароль API та кінцеву точку Webhook у таємниці (ставтеся до них як до облікових даних).
- Для автентифікації Webhook BlueBubbles немає обходу localhost. Якщо ви проксіюєте трафік Webhook, зберігайте пароль BlueBubbles у запиті наскрізно. `gateway.trustedProxies` тут не замінює `channels.bluebubbles.password`. Див. [Безпека Gateway](/uk/gateway/security#reverse-proxy-configuration).
- Якщо сервер BlueBubbles доступний за межами вашої LAN, увімкніть HTTPS + правила брандмауера.
## Усунення проблем
- Якщо події набору/прочитання перестали працювати, перевірте журнали Webhook BlueBubbles і переконайтеся, що шлях Gateway збігається з `channels.bluebubbles.webhookPath`.
- Якщо події набору тексту/прочитання перестали працювати, перевірте журнали Webhook BlueBubbles і переконайтеся, що шлях Gateway відповідає `channels.bluebubbles.webhookPath`.
- Коди сполучення спливають через одну годину; використовуйте `openclaw pairing list bluebubbles` і `openclaw pairing approve bluebubbles <code>`.
- Для реакцій потрібен BlueBubbles private API (`POST /api/v1/message/react`); переконайтеся, що версія сервера його надає.
- Для редагування/скасування надсилання потрібні macOS 13+ і сумісна версія сервера BlueBubbles. На macOS 26 (Tahoe) редагування наразі не працює через зміни в private API.
- Реакції потребують BlueBubbles private API (`POST /api/v1/message/react`); переконайтеся, що версія сервера його надає.
- Редагування/скасування надсилання потребують macOS 13+ і сумісної версії сервера BlueBubbles. На macOS 26 (Tahoe) редагування наразі не працює через зміни private API.
- Оновлення значка групи можуть бути нестабільними на macOS 26 (Tahoe): API може повертати успіх, але новий значок не синхронізується.
- OpenClaw автоматично приховує відомі непрацюючі дії на основі версії macOS сервера BlueBubbles. Якщо редагування все ще відображається на macOS 26 (Tahoe), вимкніть його вручну через `channels.bluebubbles.actions.edit=false`.
- Для перегляду інформації про статус/стан: `openclaw status --all` або `openclaw status --deep`.
- OpenClaw автоматично приховує відомі несправні дії на основі версії macOS сервера BlueBubbles. Якщо редагування все ще відображається на macOS 26 (Tahoe), вимкніть його вручну через `channels.bluebubbles.actions.edit=false`.
- Для інформації про стан/працездатність: `openclaw status --all` або `openclaw status --deep`.
Загальний довідник щодо роботи каналів див. у [Channels](/uk/channels) і в посібнику [Plugins](/uk/tools/plugin).
Загальний довідник щодо робочих процесів каналів див. у [Channels](/uk/channels) і в посібнику [Plugins](/uk/tools/plugin).
## Пов’язане
- [Огляд Channels](/uk/channels) — усі підтримувані канали
- [Огляд каналів](/uk/channels) — усі підтримувані канали
- [Сполучення](/uk/channels/pairing) — автентифікація DM і процес сполучення
- [Групи](/uk/channels/groups) — поведінка групових чатів і mention gating
- [Групи](/uk/channels/groups) — поведінка групових чатів і обмеження за згадуванням
- [Маршрутизація каналів](/uk/channels/channel-routing) — маршрутизація сесій для повідомлень
- [Безпека](/uk/gateway/security) — модель доступу та посилення захисту