Настройка каналов
Обновлено: 2026-04-05
Настройка каналов связи
OpenClaw поддерживает множество каналов связи. В этом руководстве вы узнаете, как настроить каждый из них.
Общая структура конфигурации каналов
{
"channels": {
// Общие настройки для всех каналов
"defaults": {
"dmPolicy": "pairing",
"groupPolicy": "allowlist",
"configWrites": false,
"historyLimit": 100
},
// Конкретные каналы
"telegram": { /* настройки Telegram */ },
"whatsapp": { /* настройки WhatsApp */ },
"discord": { /* настройки Discord */ },
"slack": { /* настройки Slack */ }
}
}
Telegram
Базовая конфигурация
{
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "pairing",
"allowFrom": ["tg:336940264"]
}
}
Расширенная конфигурация с группами
{
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "allowlist",
"allowFrom": ["tg:336940264", "tg:987654321"],
"groups": {
"-1001234567890": {
"requireMention": true,
"allowFrom": ["@admin1", "@admin2"],
"systemPrompt": "Ты помощник в технической группе."
},
"*": {
"requireMention": true,
"allowFrom": ["@admin"]
}
},
"configWrites": false,
"historyLimit": 50,
"mediaMaxMb": 100
}
}
Требования
- WhatsApp Business Account
- Access Token от Meta
- Phone Number ID
Конфигурация
{
"whatsapp": {
"enabled": true,
"phoneNumberId": "${WHATSAPP_PHONE_NUMBER_ID}",
"businessAccountId": "${WHATSAPP_BUSINESS_ID}",
"accessToken": "${WHATSAPP_ACCESS_TOKEN}",
"webhookVerifyToken": "${WHATSAPP_WEBHOOK_TOKEN}",
"dmPolicy": "pairing",
"allowFrom": ["whatsapp:1234567890"],
"templates": {
"welcome": "welcome_template_name",
"notification": "notification_template_name"
}
}
}
Discord
Создание бота
- Перейдите на Discord Developer Portal
- Создайте New Application
- Перейдите в раздел Bot → Add Bot
- Скопируйте токен
Конфигурация
{
"discord": {
"enabled": true,
"botToken": "${DISCORD_BOT_TOKEN}",
"guildId": "ВАШ_GUILD_ID",
"dmPolicy": "pairing",
"channels": {
"general": {
"channelId": "123456789012345678",
"requireMention": true,
"allowFrom": ["@admin"]
}
},
"intents": ["GUILDS", "GUILD_MESSAGES", "DIRECT_MESSAGES"],
"presence": {
"status": "online",
"activity": {
"name": "OpenClaw Assistant",
"type": "PLAYING"
}
}
}
}
Slack
Создание приложения
- Перейдите на api.slack.com/apps
- Create New App → From scratch
- Установите OAuth Scopes:
chat:write,im:history,groups:history - Установите приложение в workspace
- Скопируйте Bot User OAuth Token
Конфигурация
{
"slack": {
"enabled": true,
"botToken": "${SLACK_BOT_TOKEN}",
"signingSecret": "${SLACK_SIGNING_SECRET}",
"appToken": "${SLACK_APP_TOKEN}",
"dmPolicy": "pairing",
"channels": {
"general": {
"channelId": "C1234567890",
"requireMention": true
}
},
"events": ["message.im", "message.channels", "message.groups"]
}
}
Signal
Требования
- Установленный signal-cli
- Зарегистрированный номер телефона
Конфигурация
{
"signal": {
"enabled": true,
"phoneNumber": "+1234567890",
"dataDir": "/path/to/signal/data",
"dmPolicy": "allowlist",
"allowFrom": ["signal:+1234567890", "signal:+0987654321"],
"groups": {
"group1": {
"groupId": "base64_group_id",
"allowFrom": ["signal:+1234567890"]
}
}
}
}
iMessage (macOS only)
Конфигурация
{
"imessage": {
"enabled": true,
"account": "iCloud",
"dmPolicy": "allowlist",
"allowFrom": ["imessage:someone@icloud.com"],
"syncInterval": 5000,
"maxHistory": 1000
}
}
Google Chat
Требования
- Google Workspace аккаунт
- Созданный Chat bot в Google Cloud Console
Конфигурация
{
"googlechat": {
"enabled": true,
"projectId": "ваш-project-id",
"serviceAccountKey": "${GOOGLE_SERVICE_ACCOUNT_KEY}",
"dmPolicy": "pairing",
"spaces": {
"general": {
"spaceId": "spaces/AAAA...",
"requireMention": true
}
}
}
}
Политики доступа
dmPolicy (политика личных сообщений)
| Значение | Описание | Безопасность |
|---|---|---|
pairing |
Требуется подтверждение кода | 🔒 Высокая |
allowlist |
Только разрешенные пользователи | 🔒 Средняя |
open |
Любой может писать | ⚠️ Низкая |
groupPolicy (политика групп)
| Значение | Описание |
|---|---|
allowlist |
Только разрешенные группы |
open |
Любая группа |
requireMention |
Только при упоминании |
Примеры использования
Пример 1: Мульти-канальная конфигурация
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "allowlist",
"allowFrom": ["tg:336940264"],
"groups": {
"*": { "requireMention": true }
}
},
"discord": {
"enabled": true,
"botToken": "${DISCORD_BOT_TOKEN}",
"guildId": "123456789012345678",
"dmPolicy": "pairing",
"channels": {
"general": {
"channelId": "123456789012345678",
"requireMention": true
}
}
}
}
}
Пример 2: Production конфигурация с безопасностью
{
"channels": {
"defaults": {
"dmPolicy": "allowlist",
"configWrites": false,
"historyLimit": 100,
"mediaMaxMb": 50
},
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"allowFrom": ["tg:336940264", "tg:987654321"],
"groups": {
"*": {
"requireMention": true,
"allowFrom": ["@admin"]
}
}
},
"whatsapp": {
"enabled": true,
"phoneNumberId": "${WHATSAPP_PHONE_NUMBER_ID}",
"accessToken": "${WHATSAPP_ACCESS_TOKEN}",
"allowFrom": ["whatsapp:+1234567890"],
"templates": {
"welcome": "welcome_message"
}
}
}
}
Пример 3: Командный бот с разными правами
{
"channels": {
"telegram": {
"enabled": true,
"botToken": "${TELEGRAM_BOT_TOKEN}",
"dmPolicy": "allowlist",
"allowFrom": ["tg:team_lead"],
"groups": {
"-1001234567890": { // Группа разработчиков
"requireMention": false,
"allowFrom": ["@dev1", "@dev2", "@dev3"],
"systemPrompt": "Ты помощник команды разработки.",
"skills": ["github", "terminal", "docker"]
},
"-1000987654321": { // Группа менеджеров
"requireMention": true,
"allowFrom": ["@manager1", "@manager2"],
"systemPrompt": "Ты помощник для управления проектами.",
"skills": ["calendar", "notion", "jira"]
}
}
}
}
}
Устранение неполадок
Общие проблемы
❌ Канал не отвечает
- Проверьте токен/ключи доступа
- Проверьте статус шлюза:
openclaw gateway status - Проверьте логи:
tail -f ~/.openclaw/logs/gateway.log
❌ "Pairing required"
- Отправьте
/startили начальное сообщение - Подтвердите код в терминале
- Проверьте
dmPolicyв конфигурации
❌ Ошибки вебхука
- Проверьте URL вебхука
- Проверьте Verify Token
- Проверьте доступность сервера
Специфичные проблемы
Telegram
# Проверьте токен
curl -s "https://api.telegram.org/botТОКЕН/getMe"
# Проверьте вебхук
curl -s "https://api.telegram.org/botТОКЕН/getWebhookInfo"
Discord
# Проверьте токен
curl -H "Authorization: Bot ТОКЕН" https://discord.com/api/v10/users/@me
# Проверьте статус бизнес-аккаунта
curl -X GET "https://graph.facebook.com/v17.0/ВАШ_PHONE_NUMBER_ID" \
-H "Authorization: Bearer ВАШ_ACCESS_TOKEN"
Лучшие практики
Безопасность
- Никогда не храните токены в коде - используйте переменные окружения
- Используйте
dmPolicy: "allowlist"для production - Отключайте
configWrites: falseесли не нужно - Ограничивайте
historyLimitдля экономии памяти
Производительность
- Настройте
retryполитику для надежности - Используйте кэширование для медиа файлов
- Мониторьте использование памяти при большом количестве каналов
- Используйте асинхронную обработку для тяжелых операций
Масштабирование
- Разделяйте каналы по назначению (личные, командные, публичные)
- Используйте разные systemPrompt для разных каналов
- Настройте привязку к агентам для специализированных задач
- Реализуйте очередь сообщений для высокой нагрузки
Мониторинг
Ключевые метрики
# Количество активных каналов
openclaw channels list --status
# Статистика сообщений
grep -c "Message received" ~/.openclaw/logs/gateway.log
# Ошибки по каналам
grep -i "error\|failed" ~/.openclaw/logs/*.log | grep -i "telegram\|discord"
Health checks
# Проверка здоровья каналов
curl http://127.0.0.1:18789/health
# Проверка подключения к API
for channel in telegram discord whatsapp; do
echo "Checking $channel..."
# channel-specific checks
done
Дополнительные ресурсы
- Официальная документация по каналам
- Telegram Bot API
- Discord Developer Portal
- WhatsApp Business API
- Slack API
Совет: Начинайте с одного канала, отлаживайте его, затем добавляйте остальные. Так проще диагностировать проблемы.
Комментарии и обсуждение
Пока нет комментариев. Будьте первым!
Добавить комментарий