Skip to content
Эта страница создана и переведена с помощью ИИ. Если вы заметили неточности, помогите нам улучшить её. Редактировать на GitHub

DingTalk

Подключение PRX к DingTalk через WebSocket API Stream Mode для обмена сообщениями с ботом в реальном времени на корпоративной платформе Alibaba.

Предварительные требования

  • Организация DingTalk (корпоративная или командная)
  • Бот-приложение, созданное в DingTalk Developer Console
  • Client ID (AppKey) и Client Secret (AppSecret) из консоли разработчика

Быстрая настройка

1. Создание бота DingTalk

  1. Перейдите в DingTalk Open Platform и войдите
  2. Создайте новое «Enterprise Internal Application» (или «H5 Micro Application»)
  3. Добавьте возможность «Robot» к вашему приложению
  4. В разделе «Credentials» скопируйте Client ID (AppKey) и Client Secret (AppSecret)
  5. Включите «Stream Mode» в конфигурации бота

2. Конфигурация

toml
[channels_config.dingtalk]
client_id = "dingxxxxxxxxxxxxxxxxxx"
client_secret = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
allowed_users = ["manager1234"]

3. Проверка

bash
prx channel doctor dingtalk

Справочник конфигурации

ПолеТипПо умолчаниюОписание
client_idStringобязательныйClient ID (AppKey) из консоли разработчика DingTalk
client_secretStringобязательный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 = ["*"]

Released under the Apache-2.0 License.