DingTalk
Подключение PRX к DingTalk через WebSocket API Stream Mode для обмена сообщениями с ботом в реальном времени на корпоративной платформе Alibaba.
Предварительные требования
- Организация DingTalk (корпоративная или командная)
- Бот-приложение, созданное в DingTalk Developer Console
- Client ID (AppKey) и Client Secret (AppSecret) из консоли разработчика
Быстрая настройка
1. Создание бота DingTalk
- Перейдите в DingTalk Open Platform и войдите
- Создайте новое «Enterprise Internal Application» (или «H5 Micro Application»)
- Добавьте возможность «Robot» к вашему приложению
- В разделе «Credentials» скопируйте Client ID (AppKey) и Client Secret (AppSecret)
- Включите «Stream Mode» в конфигурации бота
2. Конфигурация
toml
[channels_config.dingtalk]
client_id = "dingxxxxxxxxxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["manager1234"]3. Проверка
bash
prx channel doctor dingtalkСправочник конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
client_id | String | обязательный | Client ID (AppKey) из консоли разработчика DingTalk |
client_secret | String | обязательный | Client Secret (AppSecret) из консоли разработчика |
allowed_users | [String] | [] | Разрешённые staff ID DingTalk. Пусто = запрещено всем. "*" = разрешить всем |
Возможности
- WebSocket Stream Mode — постоянное WebSocket-подключение к шлюзу DingTalk для доставки сообщений в реальном времени
- Публичный URL не требуется — Stream Mode устанавливает исходящее подключение, без настройки входящих вебхуков
- Личные и групповые чаты — обработка разговоров 1:1 и групповых сообщений
- Session webhooks — ответы через session webhook URL, предоставляемые DingTalk для каждого сообщения
- Автоматическая регистрация шлюза — регистрация в шлюзе DingTalk для получения WebSocket-эндпоинта и тикета
- Определение типа разговора — различение личных чатов и групповых разговоров
Ограничения
- Stream Mode требует стабильного исходящего WebSocket-подключения к серверам DingTalk
- Ответы используют session webhooks для каждого сообщения, которые могут истечь при несвоевременном использовании
- Бот должен быть добавлен в групповой чат администратором, прежде чем сможет получать групповые сообщения
- API DingTalk преимущественно документированы на китайском; международная поддержка ограничена
- Для развёртывания внутренних приложений может требоваться утверждение администратора
Устранение неполадок
Бот не подключается к DingTalk
- Проверьте корректность
client_idиclient_secret - Убедитесь, что «Stream Mode» включён в консоли разработчика DingTalk в настройках бота
- Проверьте, что исходящие подключения к серверам DingTalk не блокируются файрволом
Сообщения получаются, но ответы не отправляются
- Session webhooks привязаны к сообщениям и могут истечь; отправляйте ответы своевременно
- Убедитесь, что бот имеет необходимые API-разрешения в консоли разработчика
Групповые сообщения не получаются
- Бот должен быть явно добавлен в группу администратором
- Убедитесь, что staff ID отправителя указан в
allowed_users, или задайтеallowed_users = ["*"]