Sincronizar datos de usuario desde DingTalk
DingTalkProfessional Edition+Introducción
El plugin DingTalk sincroniza los usuarios y departamentos de una organización de DingTalk con NocoBase. Admite sincronización completa manual y actualizaciones incrementales mediante callback HTTP o conexión Stream.
Antes de comenzar
- Instale y active los plugins DingTalk y Sincronización de datos de usuario.
- Cree una aplicación interna en la consola de desarrolladores de DingTalk.
- Conceda los permisos de contactos y configure el ámbito de permisos de datos descritos a continuación.
- Copie el Client ID y el Client Secret. Consulte Autenticación: DingTalk.
Configurar permisos de contactos y ámbito de datos
Abra Gestión de permisos de la aplicación en DingTalk y conceda los siguientes permisos:
Configure también el Ámbito de permisos de datos para incluir los departamentos y empleados que se pueden sincronizar. Seleccione todos los empleados para sincronizar toda la organización.
Los permisos de API determinan qué campos se pueden leer; el ámbito de datos determina qué departamentos y empleados se pueden leer. Se deben configurar ambos. Las suscripciones de eventos no sustituyen los permisos de lectura.
Si la misma aplicación también se utiliza para iniciar sesión, conceda además los permisos personales descritos en Autenticación: DingTalk.
Añadir una fuente de sincronización DingTalk
Vaya a Usuarios y permisos > Sincronizar, haga clic en Añadir y seleccione DingTalk.
Guarde y active la fuente; después pulse Sincronizar para realizar primero una sincronización completa.
Elegir el modo de recepción de eventos
Modo Stream
El modo Stream establece una conexión persistente saliente desde el servidor NocoBase hacia DingTalk. No requiere URL pública de callback, Token ni EncodingAESKey.
- Seleccione modo Stream en la configuración de suscripción de eventos de DingTalk.
- Suscríbase a los eventos necesarios de usuarios y departamentos.
- Seleccione modo Stream en NocoBase, guarde la fuente y actívela.
El cliente Stream se inicia al activar la fuente. Al actualizarla, desactivarla o eliminarla, la conexión se actualiza o se cierra.
El servidor NocoBase debe poder conectarse a DingTalk. El modo Stream no necesita proxy inverso ni endpoint público de entrada.
Callback HTTP
- Seleccione Callback HTTP en NocoBase.
- Introduzca el Token y EncodingAESKey configurados en DingTalk.
- Guarde la fuente y copie la URL de callback de eventos generada.
- Configure la URL en DingTalk y suscríbase a los eventos de usuarios y departamentos.
La URL debe ser accesible desde DingTalk. En producción use HTTPS y asegúrese de que el proxy inverso conserve la ruta completa.
Eventos incrementales compatibles
Campos sincronizados
Campos de departamento
Campos de usuario
Responsables de departamento
NocoBase sincroniza leader_in_dept por separado para cada departamento. Un usuario puede ser responsable de varios departamentos y estos no tienen que coincidir con su departamento principal. Al quitar la marca en DingTalk, la siguiente sincronización también la elimina en NocoBase. Los cambios manuales pueden sobrescribirse.
La sincronización completa e incremental usan el mismo mapeo. Actualmente no se sincronizan avatar, cargo ni número de empleado.
Solución de problemas
- Si faltan datos, compruebe los tres permisos obligatorios y el ámbito de datos.
- Si faltan teléfono o correo, compruebe
fieldMobileyfieldEmail. - Se omiten los usuarios sin el identificador único configurado.
- Para Stream, revise los logs
Dingtalk stream client starting,Dingtalk stream client startedy los errores de conexión. - Para callback HTTP, compruebe la accesibilidad pública, el Token y EncodingAESKey.
- Ejecute otra sincronización completa después de cambiar permisos o el ámbito de datos.

