logologo
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Bắt đầu
Hướng dẫn
Phát triển
Plugin
API
logologo
Người dùng

Vai trò và quyền

Cấu hình vai trò
Cấu hình quyền
Áp dụng trong UI
Hợp nhất vai trò

Hướng dẫn cho nhà phát triển

Mở rộng thanh cấu hình quyền

Phòng ban

Quản lý phòng ban
Quản lý vai trò phòng ban

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

Quản lý đồng bộ

Nguồn dữ liệu

WeChat Work
HTTP API

Hướng dẫn cho nhà phát triển

Mở rộng nguồn dữ liệu đồng bộ
Mở rộng tài nguyên đích đồng bộ
Previous PageHTTP API
Next PageMở rộng tài nguyên đích đồng bộ
TIP

Tài liệu này được dịch bởi AI. Đối với bất kỳ thông tin không chính xác nào, vui lòng tham khảo phiên bản tiếng Anh

#Mở rộng nguồn dữ liệu đồng bộ

#Tổng quan

NocoBase hỗ trợ mở rộng các loại nguồn dữ liệu đồng bộ hóa dữ liệu người dùng theo nhu cầu.

#Phía máy chủ

#Giao diện nguồn dữ liệu

Plugin đồng bộ hóa dữ liệu người dùng tích hợp sẵn cung cấp chức năng đăng ký và quản lý các loại nguồn dữ liệu. Để mở rộng một loại nguồn dữ liệu, bạn cần kế thừa lớp trừu tượng SyncSource do plugin cung cấp và triển khai các giao diện tiêu chuẩn tương ứng.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    return [];
  }
}

SyncSource cung cấp thuộc tính options để lấy cấu hình tùy chỉnh của nguồn dữ liệu.

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    //...
    const { appid, secret } = this.options;
    //...
    return [];
  }
}

#Mô tả các trường của UserData

TrườngMô tả
dataTypeLoại dữ liệu, các giá trị tùy chọn là user và department
uniqueKeyTrường định danh duy nhất
recordsCác bản ghi dữ liệu
sourceNameTên nguồn dữ liệu

Nếu dataType là user, trường records sẽ bao gồm các trường sau:

TrườngMô tả
idID người dùng
nicknameBiệt danh người dùng
avatarẢnh đại diện người dùng
emailEmail
phoneSố điện thoại
departmentsMảng ID phòng ban

Nếu dataType là department, trường records sẽ bao gồm các trường sau:

TrườngMô tả
idID phòng ban
nameTên phòng ban
parentIdID phòng ban cha

#Ví dụ triển khai giao diện nguồn dữ liệu

import { SyncSource, UserData } from '@nocobase/plugin-user-data-sync';

class CustomSyncSource extends SyncSource {
  async pull(): Promise<UserData[]> {
    // ...
    const ThirdClientApi = new ThirdClientApi(
      this.options.appid,
      this.options.secret,
    );
    const departments = await this.clientapi.getDepartments();
    const users = await this.clientapi.getUsers();
    // ...
    return [
      {
        dataType: 'department',
        uniqueKey: 'id',
        records: departments,
        sourceName: this.instance.name,
      },
      {
        dataType: 'user',
        uniqueKey: 'id',
        records: users,
        sourceName: this.instance.name,
      },
    ];
  }
}

#Đăng ký loại nguồn dữ liệu

Nguồn dữ liệu mở rộng cần được đăng ký với module quản lý dữ liệu.

import UserDataSyncPlugin from '@nocobase/plugin-user-data-sync';

class CustomSourcePlugin extends Plugin {
  async load() {
    const syncPlugin = this.app.pm.get(
      UserDataSyncPlugin,
    ) as UserDataSyncPlugin;
    if (syncPlugin) {
      syncPlugin.sourceManager.reigsterType('custom-source-type', {
        syncSource: CustomSyncSource,
        title: 'Custom Source',
      });
    }
  }
}

#Phía máy khách

Giao diện người dùng phía máy khách đăng ký các loại nguồn dữ liệu bằng cách sử dụng phương thức registerType do plugin đồng bộ hóa dữ liệu người dùng cung cấp:

import SyncPlugin from '@nocobase/plugin-user-data-sync/client';

class CustomSourcePlugin extends Plugin {
  async load() {
    const sync = this.app.pm.get(SyncPlugin);
    sync.registerType(authType, {
      components: {
        AdminSettingsForm, // Biểu mẫu quản lý backend
      },
    });
  }
}

#Biểu mẫu quản lý backend

Phần trên cung cấp cấu hình nguồn dữ liệu chung, trong khi phần dưới là phần biểu mẫu cấu hình tùy chỉnh có thể đăng ký.