Magazyn key-value, czyli jak nasze aplikacje stały się bardziej funkcjonalne

Magazyn key-value, czyli jak nasze aplikacje stały się bardziej funkcjonalne

Osoba, która rozwija na Voximplant, zna koncepcję „aplikacji”, które łączą ze sobą chmurowe scenariusze, numery telefonów, użytkowników, zasady i kolejki połączeń. Mówiąc prościej, aplikacje są kamieniem węgielnym rozwoju na naszej platformie, punktem wyjścia do każdego rozwiązania opartego na Voximplant, ponieważ to właśnie od stworzenia aplikacji wszystko się zaczyna.

Wcześniej aplikacje „nie pamiętały” ani działań, które wykonywały scenariusze, ani wyników obliczeń, więc programiści byli zmuszeni do przechowywania wartości w zewnętrznych serwisach lub na własnym backendzie. Jeśli kiedykolwiek pracowałeś z local storage w przeglądarce, to nasza nowa funkcjonalność jest bardzo podobna, ponieważ pozwala aplikacjom zapamiętywać pary „klucz-wartość”, które są unikalne dla każdej aplikacji w twoim koncie. Praca magazynu stała się możliwa dzięki nowemu modułowi ApplicationStorage – poniżej czeka na Ciebie krótki przewodnik po jego użyciu, witaj!

Będziesz potrzebować

  • konta Voximplant. Jeśli go nie masz, to rejestracja znajduje się tutaj;
  • aplikacji Voximplant oraz scenariusza, zasady i jednego użytkownika. Wszystko to stworzymy w tym samouczku;
  • klienta sieciowego, aby zainicjować połączenie – skorzystamy z naszego webfona phone.voximplant.com.

Ustawienia Voximplant

Najpierw zaloguj się na swoje konto: manage.voximplant.com/auth. W menu po lewej kliknij „Aplikacje”, a następnie „Nowa aplikacja” i stwórz aplikację o nazwie storage. Wejdź do nowej aplikacji, przełącz się na zakładkę „Scenariusze”, aby stworzyć scenariusz countingCalls z następującym kodem:

require(Modules.ApplicationStorage);

VoxEngine.addEventListener(AppEvents.CallAlerting, async (e) => {
let r = {value: -1};

    try {
        r = await ApplicationStorage.get('totalCalls');
        if (r === null) {
            r = await ApplicationStorage.put('totalCalls', 0);
        }
    } catch(e) {
        Logger.write('Błąd podczas pobierania wartości totalCalls');
    }

    try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    } catch(e) {
        Logger.write('Błąd podczas aktualizacji wartości totalCalls');
    }
    
    e.call.answer();
    e.call.say(`Witaj. Liczba ostatnich połączeń: ${r.value}. `, Language.RU_RUSSIAN_MALE);

    e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);

});

Pierwsza linia podłącza moduł ApplicationStorage, natomiast pozostała logika jest umieszczona w obsłudze zdarzenia CallAlerting.

Najpierw ogłaszamy zmienną, aby porównać wartość początkową z licznikiem połączeń. Następnie próbujemy uzyskać wartość klucza totalCalls z magazynu. Jeśli takiego klucza jeszcze nie ma, to go tworzymy:

try {
    r = await ApplicationStorage.get('totalCalls');
    if (r === null) {
        r = await ApplicationStorage.put('totalCalls', 0);
    }
}

Następnie musimy zwiększyć wartość klucza w magazynie:

try {
        await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
    }

ZWRÓĆ UWAGĘ

Dla każdego obietnicy należy jawnie określić obsługę błędów, jak pokazano w powyższym przykładzie – w przeciwnym razie wykonanie skryptu zostanie zatrzymane, a w logach zobaczysz błąd. Szczegóły tutaj.

Po pracy z magazynem skrypt odpowiada na przychodzące połączenie za pomocą syntezatora mowy i mówi, ile razy dzwoniłeś wcześniej. Po tym komunikacie skrypt kończy sesję.

Po zapisaniu skryptu przejdź do zakładki "Routing" swojej aplikacji i kliknij "Nowa reguła". Nazwij ją startCounting, wskaź skrypt countingCalls i pozostaw maskę domyślną (.*).

Magazyn key-value, czyli jak nasze aplikacje stały się bardziej funkcjonalne
Ostatnia rzecz – stworzenie użytkownika. W tym celu przejdź do "Użytkownicy", kliknij "Utwórz użytkownika", podaj nazwę (na przykład user1) i hasło, a następnie kliknij "Utwórz". Ta para login-hasło będzie potrzebna do autoryzacji w webfonie.

Sprawdzamy

Otwórz webfon pod tym linkiem phone.voximplant.com i zaloguj się, używając nazwy konta, nazwy aplikacji oraz pary login-hasło użytkownika z aplikacji. Po pomyślnym zalogowaniu wpisz dowolny zestaw znaków w polu wprowadzania i naciśnij Call. Jeśli wszystko zostało zrobione poprawnie, usłyszysz wygenerowane powitanie!

Życzymy udanej pracy z Voximplant i zachęcamy do śledzenia nowości – będzie ich u nas jeszcze wiele 😉

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster