logologo
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
English
简体中文
日本語
한국어
Deutsch
Français
Español
Português
Русский
Italiano
Türkçe
Українська
Tiếng Việt
Bahasa Indonesia
ไทย
Polski
Nederlands
Čeština
العربية
עברית
हिन्दी
Svenska
Başlangıç
Kılavuz
Geliştirme
Eklentiler
API
logologo
Kullanıcı

Roller ve İzinler

Rol Yapılandırması
İzin Yapılandırması
UI'da Uygula
Rol Birleşimi

Geliştirici Kılavuzu

İzin Yapılandırma Çubuğunu Genişlet

Departman

Departman Yönetimi
Departman Rol Yönetimi

Kullanıcı Veri Senkronizasyonu

Senkronizasyon Yönetimi

Veri Kaynakları

WeChat Work
HTTP API

Geliştirici Kılavuzu

Senkronizasyon Veri Kaynağını Genişlet
Senkronizasyon Hedef Kaynağını Genişlet
Previous PageHTTP API
Next PageSenkronizasyon Hedef Kaynağını Genişlet
TIP

Bu belge AI tarafından çevrilmiştir. Herhangi bir yanlışlık için lütfen İngilizce sürümüne bakın

#Senkronize Veri Kaynaklarını Genişletme

#Genel Bakış

NocoBase, kullanıcı veri senkronizasyonu için veri kaynağı türlerini ihtiyaç duyulduğunda genişletmenize olanak tanır.

#Sunucu Tarafı

#Veri Kaynağı Arayüzü

Yerleşik kullanıcı veri senkronizasyonu eklentisi, veri kaynağı türlerinin kaydını ve yönetimini sağlar. Bir veri kaynağı türünü genişletmek için, eklentinin sağladığı SyncSource soyut sınıfını miras almanız ve ilgili standart arayüzleri uygulamanız gerekir.

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

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

SyncSource sınıfı, veri kaynağının özel yapılandırmalarını almak için bir options özelliğine sahiptir.

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

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

#UserData Alanlarının Açıklaması

AlanAçıklama
dataTypeVeri türü, seçenekler user ve department'tır.
uniqueKeyBenzersiz tanımlayıcı alan
recordsVeri kayıtları
sourceNameVeri kaynağı adı

dataType user ise, records alanı aşağıdaki alanları içerir:

AlanAçıklama
idKullanıcı ID'si
nicknameKullanıcı takma adı
avatarKullanıcı avatarı
emailE-posta
phoneTelefon numarası
departmentsDepartman ID'lerinin dizisi

dataType department ise, records alanı aşağıdaki alanları içerir:

AlanAçıklama
idDepartman ID'si
nameDepartman adı
parentIdÜst departman ID'si

#Veri Kaynağı Arayüzü Uygulama Örneği

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

#Veri Kaynağı Türü Kaydı

Genişletilen veri kaynağının veri yönetimi modülüne kaydedilmesi gerekir.

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.registerType('custom-source-type', {
        syncSource: CustomSyncSource,
        title: 'Custom Source',
      });
    }
  }
}

#İstemci Tarafı

İstemci kullanıcı arayüzü, kullanıcı veri senkronizasyonu eklentisinin istemci arayüzü tarafından sağlanan registerType metodunu kullanarak veri kaynağı türlerini kaydeder:

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, // Arka uç yönetim formu
      },
    });
  }
}

#Arka Uç Yönetim Formu

Üst kısım genel veri kaynağı yapılandırmasını sağlarken, alt kısım özel yapılandırma formlarının kaydedilmesine olanak tanır.