IntegracjeNestJS

Moduł frameworkowy · v0.1.0

Simply Connect
dla NestJS.

Instalujesz klienta bazowego i moduł @simply-connect/nestjs. Framework tworzy klienta przez DI, a panel włączasz osobno tylko wtedy, gdy jest potrzebny.

Gotowa integracja · v0.1.0

Dla kogo jest ta integracja

Najpierw sprawdź, czy to rozwiązanie dla Ciebie.

Dla aplikacji NestJS 10, 11 i 12. Jeżeli używasz zwykłego Node.js bez NestJS, wybierz lżejszy poradnik klienta bazowego.

Co dostajesz

Mniej ręcznej pracy.
Więcej pewności.

01

SimplyConnectModule dla dependency injection

02

Konfiguracja forRoot i forRootAsync

03

Typowany klient SMS, wiadomości i połączeń

04

Opcjonalny SimplyConnectPanelModule

05

Sesja, CSRF i throttling logowania panelu

Instalacja krok po kroku

Bez zgadywania. Zrobisz to po kolei.

Każdy krok mówi, gdzie wejść i czego oczekiwać. Najpierw uruchom podstawową wysyłkę, dopiero potem włącz kolejne automatyzacje.

  1. 1

    Zainstaluj obie paczki

    Moduł NestJS korzysta z klienta bazowego, dlatego pierwsze wydanie instalujesz z dwóch niezmiennych artefaktów GitHub.

    npm install \
      https://github.com/karlos1998/simply-connect-node/releases/download/v0.1.0/simply-connect-node-0.1.0.tgz \
      https://github.com/karlos1998/simply-connect-node/releases/download/v0.1.0/simply-connect-nestjs-0.1.0.tgz
  2. 2

    Utwórz klucz API

    W panelu Simply Connect otwórz Developer → API keys. Włącz SMS_SEND oraz tylko potrzebne zakresy historii lub kolejki połączeń.

    Otwórz panel Simply Connect
  3. 3

    Dodaj sekrety do środowiska

    Klucz i UUID bramki trzymaj poza repozytorium. Możesz wczytać je bezpośrednio albo przez własny ConfigService.

    SIMPLY_CONNECT_API_KEY=msc_live_twoj_sekret
    SIMPLY_CONNECT_SMS_ENDPOINT_ID=uuid_twojej_bramki
  4. 4

    Zaimportuj moduł

    Dodaj SimplyConnectModule do modułu głównego. Dla secret managera użyj forRootAsync().

    @Module({
      imports: [
        SimplyConnectModule.forRoot({
          apiKey: process.env.SIMPLY_CONNECT_API_KEY!,
          defaultSmsEndpointId:
            process.env.SIMPLY_CONNECT_SMS_ENDPOINT_ID,
        }),
      ],
    })
    export class AppModule {}
  5. 5

    Wstrzyknij klienta do serwisu

    Importuj SimplyConnectClient z @simply-connect/nestjs i używaj go jak zwykłej zależności serwisu.

    @Injectable()
    export class OrderNotifications {
      constructor(
        private readonly simplyConnect: SimplyConnectClient,
      ) {}
    }
  6. 6

    Opcjonalnie uruchom panel

    Panel jest osobnym modułem i pozostaje wyłączony bez importu. Ustaw inne hasło niż klucz API i otwórz /simply-connect.

    SimplyConnectPanelModule.forRoot({
      path: '/simply-connect',
      password: process.env.SIMPLY_CONNECT_PANEL_PASSWORD!,
    })

Test po instalacji

Po czym poznasz, że wszystko działa?

Nie zaczynaj od masowej wysyłki. Przejdź tę krótką listę na jednym kontrolowanym numerze.

  1. 1NestJS uruchamia się z dostępnym SimplyConnectClient.
  2. 2Klient jest wstrzykiwany przez dependency injection.
  3. 3Kontrolny SMS zwraca identyfikatory i status QUEUED.
  4. 4Po włączeniu panel wymaga osobnego hasła i nie zawiera klucza API w HTML.
  5. 5Każda sekcja panelu respektuje zakresy i bramki przypisane do klucza.

Gdy coś nie ruszy

Najczęstsze problemy

Najpierw sprawdź poniższe rzeczy — zwykle rozwiązanie jest tutaj.

NestJS nie wstrzykuje klienta

Zaimportuj SimplyConnectModule w module dostępnym dla serwisu. Przy forRootAsync zwróć apiKey z useFactory i wpisz zależności konfiguracyjne w inject.

Panel nie uruchamia aplikacji

Hasło panelu musi mieć co najmniej 12 znaków i różnić się od klucza API. Usuń import SimplyConnectPanelModule, jeżeli panel nie jest potrzebny.

Panel pokazuje puste sekcje

Panel respektuje zakresy klucza. Dodaj MESSAGES_READ, CALL_QUEUE_READ albo CALL_QUEUE_WRITE tylko dla funkcji, które mają być widoczne.

Gotowe do uruchomienia

Połącz NestJS z własnym numerem.

Integracja jest otwarta i wersjonowana. Kod możesz sprawdzić przed instalacją, a w razie pytania napisać do nas.

Nazwy i znaki należą do ich właścicieli. Integracja nie oznacza partnerstwa ani certyfikacji przez właściciela danego narzędzia.
Pobierz moduł v0.1.0 Zobacz kod na GitHubiePotrzebujesz pomocy?