logologo
البدء
الدليل
التطوير
الإضافات
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
البدء
الدليل
التطوير
الإضافات
API
logologo
المستخدمون

الأدوار والصلاحيات

إعدادات الدور
إعدادات الصلاحيات
تطبيق في UI
اتحاد الأدوار

دليل المطورين

توسيع شريط إعدادات الصلاحيات

الأقسام

إدارة الأقسام
إدارة أدوار الأقسام

مزامنة بيانات المستخدمين

إدارة المزامنة

مصدر البيانات

WeChat للشركات
HTTP API

دليل المطورين

توسيع مصدر بيانات المزامنة
توسيع مورد هدف المزامنة
Previous PageHTTP API
Next Pageتوسيع مورد هدف المزامنة
إشعار الترجمة بالذكاء الاصطناعي

تمت ترجمة هذه الوثائق تلقائيًا بواسطة الذكاء الاصطناعي.

#توسيع مصادر البيانات المتزامنة

#نظرة عامة

تتيح NocoBase للمستخدمين توسيع أنواع مصادر البيانات لمزامنة بيانات المستخدم حسب الحاجة.

#جانب الخادم

#واجهة مصدر البيانات

توفر إضافة مزامنة بيانات المستخدم المدمجة تسجيل وإدارة أنواع مصادر البيانات. لتوسيع نوع مصدر البيانات، يجب عليك وراثة الفئة المجردة SyncSource التي توفرها الإضافة وتطبيق الواجهات القياسية ذات الصلة.

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

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

تتضمن الفئة SyncSource خاصية options لاسترداد التكوينات المخصصة لمصدر البيانات.

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

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

#وصف حقول UserData

الحقلالوصف
dataTypeنوع البيانات، الخيارات هي user و department
uniqueKeyحقل المعرف الفريد
recordsسجلات البيانات
sourceNameاسم المصدر

إذا كان dataType هو user، فإن حقل records يحتوي على الحقول التالية:

الحقلالوصف
idمعرف المستخدم
nicknameاسم المستخدم المستعار
avatarصورة المستخدم الرمزية
emailالبريد الإلكتروني
phoneرقم الهاتف
departmentsمصفوفة معرفات الأقسام

إذا كان dataType هو department، فإن حقل records يحتوي على الحقول التالية:

الحقلالوصف
idمعرف القسم
nameاسم القسم
parentIdمعرف القسم الأب

#مثال على تطبيق واجهة مصدر البيانات

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,
      },
    ];
  }
}

#تسجيل نوع مصدر البيانات

يجب تسجيل مصدر البيانات الموسع في وحدة إدارة البيانات.

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',
      });
    }
  }
}

#جانب العميل

يسجل واجهة المستخدم للعميل أنواع مصادر البيانات باستخدام طريقة registerType التي توفرها واجهة عميل إضافة مزامنة بيانات المستخدم:

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, // نموذج إدارة الواجهة الخلفية
      },
    });
  }
}

#نموذج إدارة الواجهة الخلفية

يوفر القسم العلوي تكوين مصدر البيانات العام، بينما يسمح القسم السفلي بتسجيل نماذج التكوين المخصصة.