Синхронизация пользовательских данных из DingTalk
DingTalkProfessional Edition+Введение
Плагин DingTalk синхронизирует пользователей и отделы организации DingTalk с NocoBase. Поддерживаются ручная полная синхронизация и инкрементальные обновления через HTTP callback или соединение Stream.
Перед началом
- Установите и включите плагины DingTalk и Синхронизация пользовательских данных.
- Создайте внутреннее приложение в консоли разработчика DingTalk.
- Предоставьте разрешения адресной книги и настройте область данных, описанные ниже.
- Скопируйте Client ID и Client Secret. См. Аутентификация: DingTalk.
Настройка разрешений адресной книги и области данных
В разделе Управление разрешениями приложения DingTalk предоставьте:
Настройте Область разрешений данных, включив отделы и сотрудников, доступных для синхронизации. Для всей организации выберите всех сотрудников.
Разрешения API определяют доступные поля, а область данных — доступные отделы и сотрудников. Необходимо настроить оба параметра. Подписка на события не заменяет разрешения на чтение.
Если приложение также используется для входа, предоставьте личные разрешения из раздела Аутентификация: DingTalk.
Добавление источника DingTalk
Откройте Пользователи и права > Синхронизация, нажмите Добавить и выберите DingTalk.
Сохраните и включите источник, затем сначала выполните полную синхронизацию кнопкой Синхронизировать.
Выбор режима приема событий
Режим Stream
Режим Stream устанавливает постоянное исходящее соединение от сервера NocoBase к DingTalk. Публичный URL, Token и EncodingAESKey не требуются.
- Выберите режим Stream в настройках подписки DingTalk.
- Подпишитесь на необходимые события пользователей и отделов.
- Выберите режим Stream в NocoBase, сохраните и включите источник.
Клиент Stream запускается при включении источника. Обновление, отключение или удаление источника обновляет или закрывает соединение.
Сервер NocoBase должен иметь исходящий доступ к DingTalk. Обратный прокси и публичная входящая точка не нужны.
HTTP callback
- Выберите HTTP callback в NocoBase.
- Укажите Token и EncodingAESKey из настроек DingTalk.
- Сохраните источник и скопируйте созданный URL callback событий.
- Настройте URL в DingTalk и подпишитесь на необходимые события.
URL должен быть доступен DingTalk. В рабочей среде используйте HTTPS и передавайте полный путь через обратный прокси.
Поддерживаемые инкрементальные события
Синхронизируемые поля
Поля отдела
Поля пользователя
Руководители отделов
NocoBase синхронизирует leader_in_dept отдельно для каждого отдела. Пользователь может руководить несколькими отделами независимо от основного отдела. После снятия признака в DingTalk следующая синхронизация снимет его в NocoBase. Ручные изменения могут быть перезаписаны.
Полная и инкрементальная синхронизация используют одинаковое сопоставление. Аватар, должность и табельный номер сейчас не синхронизируются.
Устранение неполадок
- Если данные пусты или неполны, проверьте три обязательных разрешения и область данных.
- Если отсутствует телефон или почта, проверьте
fieldMobileиfieldEmail. - Пользователи без настроенного уникального идентификатора пропускаются.
- Для Stream ищите в журналах
Dingtalk stream client starting,Dingtalk stream client startedи ошибки соединения. - Для HTTP callback проверьте публичный доступ, Token и EncodingAESKey.
- После изменения разрешений или области выполните полную синхронизацию повторно.

