ProHoster > Blog > administração > Armazenamento de valor-chave ou como nossos aplicativos se tornaram mais convenientes
Armazenamento de valor-chave ou como nossos aplicativos se tornaram mais convenientes
Quem desenvolve no Voximplant conhece o conceito de "aplicativos" que conectam scripts em nuvem, números de telefone, usuários, regras e filas de chamadas entre si. Simplificando, os aplicativos são a base do desenvolvimento em nossa plataforma, o ponto de entrada para qualquer solução baseada em Voximplant, pois tudo começa com a criação de um aplicativo.
Anteriormente, os aplicativos não "lembravam" nem as ações executadas pelos scripts nem os resultados dos cálculos; portanto, os desenvolvedores eram forçados a armazenar valores em serviços de terceiros ou em seu back-end. Se você já trabalhou com armazenamento local em um navegador, nossa nova funcionalidade é muito semelhante a esta, porque. Permite que os aplicativos se lembrem de pares chave-valor que são exclusivos para cada aplicativo em sua conta. A operação de armazenamento tornou-se possível graças ao novo módulo Armazenamento de aplicativos - sob o corte você encontrará um pequeno guia de como usá-lo, seja bem-vindo!
Primeiro faça login na sua conta: gerencie.voximplant.com/auth. No menu à esquerda, clique em "Aplicativos", depois em "Novo Aplicativo" e crie um aplicativo chamado storage. Vá para o novo aplicativo, mude para a guia Scripts para criar um script countCalls com o seguinte código:
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('Failure while getting totalCalls value');
}
try {
await ApplicationStorage.put('totalCalls', (r.value | 0) + 1);
} catch(e) {
Logger.write('Failure while updating totalCalls value');
}
e.call.answer();
e.call.say(`Приветствую. Количество прошлых звонков: ${r.value}. `, Language.RU_RUSSIAN_MALE);
e.call.addEventListener(CallEvents.PlaybackFinished, VoxEngine.terminate);
});
A primeira linha conecta o módulo ApplicationStorage, o restante da lógica é colocado no manipulador de eventos alerta de chamada.
Primeiro, declaramos uma variável para que possamos comparar o valor inicial com a contagem de chamadas. Em seguida, tentamos obter o valor da chave totalCalls da loja. Se ainda não existe essa chave, então a criamos:
try {
r = await ApplicationStorage.get('totalCalls');
if (r === null) {
r = await ApplicationStorage.put('totalCalls', 0);
}
}
Em seguida, você precisa aumentar o valor da chave no armazenamento:
Para cada promessa, você deve especificar explicitamente o failover, conforme mostrado na listagem acima - caso contrário, a execução do script será interrompida e você verá um erro nos logs. Detalhes aqui.
Depois de trabalhar com o repositório, o script atende a chamada recebida usando síntese de voz e informa quantas vezes você ligou antes. Após essa mensagem, o script encerra a sessão.
Depois de salvar o script, vá até a guia Roteamento do seu aplicativo e clique em Nova Regra. Nomeie-o startCounting, especifique o script countCalls e deixe a máscara padrão (.*).
O último é criar um usuário. Para fazer isso, vá para "Usuários", clique em "Criar usuário", digite um nome (por exemplo, usuário1) e senha e clique em "Criar". Vamos precisar deste par login-senha para autenticação no webphone.
Verificar
Abra o webphone a partir do link telefone.voximplant.com e faça login usando o nome da conta, o nome do aplicativo e o par de nome de usuário/senha do aplicativo. Após um login bem-sucedido, insira qualquer conjunto de caracteres no campo de entrada e clique em Chamar. Se tudo foi feito corretamente, você ouvirá uma saudação sintetizada!
Desejamos a você um ótimo desenvolvimento na Voximplant e fique ligado - teremos muito mais 😉