Đồng bộ dữ liệu người dùng từ DingTalk

Xác thực: DingTalkProfessional Edition+

Giới thiệu

Plugin DingTalk đồng bộ người dùng và phòng ban của tổ chức DingTalk vào NocoBase. Plugin hỗ trợ đồng bộ toàn bộ thủ công và cập nhật tăng dần qua callback HTTP hoặc kết nối Stream.

Chuẩn bị

  1. Cài đặt và kích hoạt plugin DingTalkĐồng bộ dữ liệu người dùng.
  2. Tạo ứng dụng nội bộ doanh nghiệp trong bảng điều khiển nhà phát triển DingTalk.
  3. Cấp quyền danh bạ và cấu hình phạm vi quyền dữ liệu theo hướng dẫn bên dưới.
  4. Sao chép Client ID và Client Secret. Xem Xác thực: DingTalk.

Cấu hình quyền danh bạ và phạm vi quyền dữ liệu

Mở Quản lý quyền của ứng dụng trong DingTalk và cấp các quyền sau:

QuyềnMã quyềnBắt buộcMục đích
Đọc thông tin phòng banqyapi_get_department_listĐọc danh sách, tên và cấu trúc phòng ban.
Đọc thành viên phòng banqyapi_get_department_memberĐọc thành viên của từng phòng ban.
Đọc thông tin thành viênqyapi_get_memberĐọc chi tiết người dùng và phòng ban trực thuộc.
Số điện thoại nhân viênfieldMobileKhi dùng số điện thoạiĐồng bộ số điện thoại; bắt buộc khi định danh duy nhất là mobile.
Email và thông tin cá nhân khácfieldEmailKhôngCần thiết khi đồng bộ địa chỉ email.

Đồng thời cấu hình Phạm vi quyền dữ liệu để bao gồm các phòng ban và nhân viên được phép đồng bộ. Chọn tất cả nhân viên nếu muốn đồng bộ toàn bộ tổ chức.

Warning

Quyền API quyết định các trường có thể đọc; phạm vi dữ liệu quyết định phòng ban và nhân viên có thể đọc. Cả hai đều phải được cấu hình. Đăng ký sự kiện không thay thế quyền đọc danh bạ.

Nếu ứng dụng cũng được dùng để đăng nhập, hãy cấp thêm quyền thông tin cá nhân theo Xác thực: DingTalk.

Thêm nguồn đồng bộ DingTalk

Vào Người dùng & Quyền > Đồng bộ, nhấp Thêm và chọn DingTalk.

TrườngMô tả
Tên nguồnTên duy nhất của nguồn đồng bộ.
Kích hoạtBắt đầu nhận sự kiện và cho phép chạy nhiệm vụ đồng bộ.
Client IDClient ID của ứng dụng; hỗ trợ biến môi trường và secret.
Client SecretClient Secret của ứng dụng; hỗ trợ biến môi trường và secret.
Định danh người dùng duy nhấtmobile hoặc unionId. Không thay đổi sau lần đồng bộ đầu tiên. Người dùng thiếu giá trị được chọn sẽ bị bỏ qua.
Chế độ nhận sự kiệnCallback HTTP hoặc chế độ Stream cho thay đổi tăng dần.

Lưu và kích hoạt nguồn, sau đó nhấp Đồng bộ để chạy đồng bộ toàn bộ lần đầu.

Chọn chế độ nhận sự kiện

Chế độ Stream

Chế độ Stream thiết lập kết nối duy trì từ máy chủ NocoBase đến DingTalk. Không cần URL callback công khai, Token hoặc EncodingAESKey.

  1. Chọn chế độ Stream trong cấu hình đăng ký sự kiện DingTalk.
  2. Đăng ký các sự kiện thay đổi người dùng và phòng ban cần thiết.
  3. Chọn chế độ Stream trong NocoBase, lưu và kích hoạt nguồn.

Client Stream khởi động khi nguồn được kích hoạt. Khi cập nhật, tắt hoặc xóa nguồn, kết nối sẽ được làm mới hoặc đóng.

Info

Máy chủ NocoBase phải có thể kết nối ra ngoài đến DingTalk. Không cần reverse proxy hoặc endpoint nhận công khai.

Callback HTTP

  1. Chọn Callback HTTP trong NocoBase.
  2. Nhập Token và EncodingAESKey đã cấu hình trong DingTalk.
  3. Lưu nguồn và sao chép URL callback sự kiện được tạo.
  4. Cấu hình URL trong DingTalk và đăng ký các sự kiện người dùng, phòng ban.

URL phải được DingTalk truy cập được. Trong môi trường production, sử dụng HTTPS và đảm bảo reverse proxy chuyển tiếp nguyên đường dẫn.

Sự kiện tăng dần được hỗ trợ

Sự kiệnXử lý trong NocoBase
user_add_orgTạo hoặc cập nhật người dùng.
user_modify_orgCập nhật người dùng.
user_leave_orgXóa người dùng đã đồng bộ.
org_dept_createTạo hoặc cập nhật phòng ban.
org_dept_modifyCập nhật phòng ban và đồng bộ người dùng của phòng ban.
org_dept_removeXóa phòng ban đã đồng bộ.

Các trường được đồng bộ

Trường phòng ban

Trường DingTalkTrường hoặc mục đích trong NocoBase
dept_idĐịnh danh duy nhất của phòng ban tại nguồn.
nameTên phòng ban.
parent_idPhòng ban cấp trên. Nếu nằm ngoài phạm vi dữ liệu, phòng ban sẽ được đồng bộ như phòng ban gốc.

Trường người dùng

Trường DingTalkTrường hoặc mục đích trong NocoBase
mobile hoặc unionidĐịnh danh duy nhất tại nguồn và tên người dùng theo cấu hình.
nameBiệt danh người dùng.
mobileSố điện thoại. Yêu cầu fieldMobile.
email, dự phòng bằng org_emailĐịa chỉ email. Yêu cầu fieldEmail.
dept_id_listCác phòng ban của người dùng trong phạm vi quyền dữ liệu.
dept_order_listPhòng ban chính.
leader_in_deptNgười dùng có phải là người phụ trách phòng ban tương ứng hay không.

Người phụ trách phòng ban

NocoBase đồng bộ leader_in_dept riêng cho từng phòng ban. Một người dùng có thể phụ trách nhiều phòng ban và không nhất thiết là phòng ban chính. Khi trạng thái bị xóa trong DingTalk, lần đồng bộ tiếp theo cũng xóa trạng thái trong NocoBase. Thay đổi thủ công có thể bị ghi đè.

Đồng bộ toàn bộ và tăng dần dùng cùng ánh xạ trường. Avatar, chức danh và mã nhân viên hiện chưa được đồng bộ.

Khắc phục sự cố

  • Nếu dữ liệu trống hoặc thiếu, kiểm tra ba quyền bắt buộc và phạm vi quyền dữ liệu.
  • Nếu thiếu số điện thoại hoặc email, kiểm tra fieldMobilefieldEmail.
  • Người dùng thiếu định danh duy nhất đã cấu hình sẽ bị bỏ qua.
  • Với Stream, kiểm tra log Dingtalk stream client starting, Dingtalk stream client started và lỗi kết nối.
  • Với callback HTTP, kiểm tra khả năng truy cập công khai, Token và EncodingAESKey.
  • Chạy lại đồng bộ toàn bộ sau khi thay đổi quyền hoặc phạm vi dữ liệu.