Criando um relatório .csv com a API da TotalVoice

Olá pessoal!

Hoje vamos criar um relatório .csv com a API da TotalVoice. Na última semana implementamos algumas limitações para recuperar os dados dos relatórios na nossa API. Com isso, surgiram algumas dúvidas de como esses dados seriam recuperados com essa nova implementação.

Criei um exemplo bem simples usando a nossa lib de PHP. A ideia nesse Post é mostrar como podemos extrair os dados do relatório com uma simples classe (no nosso exemplo será o TTS, mas pode ser utilizado com os demais, SMS, Chamada, etc…).

Conforme mencionei anteriormente, nós vamos utilizar a lib de PHP pra isso… se você não sabe como usar/instalar sugiro dar uma olhada nesse Post do nosso blog.

A estrutura da nossa classe será bem simples… abaixo vou demonstrar como ela está construída por completo e em seguida vou explicando alguns pontos…

Legal, inicialmente temos o require ‘vendor/autoload.php’ comentado, fiz isso pra você que usa algum Framework ou já tenha um autoload (PSR4) configurado, essa opção não será necessária. Agora se você criou um arquivo index.php simples e quer fazer um teste rápido dessa classe… descomente…

Em seguida temos os “uses” e a definição da classe… okkk…

Definimos algumas constantes a seguir, são elas…

  • LIMIT_DEFAULT: quantidade de registros que será recuperado da API (200 é o default)
  • TIME_WAIT: iremos definir um sleep (1 segundo) para evitar muitas requisições simultâneas…
  • DELIMITER_DEFAULT: delimitador padrão para o arquivo .csv, ponto e vírgula “;”

Nossa classe terá dois atributos (client e o arquivo) e nosso construtor irá receber um ClientInterface por injeção de dependência. Em seguida nós iremos criar o arquivo .csv

processa()

Nosso método principal (e único público) será o processa(). Ele receberá dois parâmetros, a data inicial e data final do período do relatório. Dentro deste método, outros métodos são executados, como setHeader, responseToArray, writeRows, etc… eles serão detalhados a seguir.

Como podemos observar, este método cria o Header (cabeçalho) do arquivo csv, monta os filtros e depois invoca a chamada na API (GET /tts/relatorio) com o Client da TotalVoice. Com o retorno, iremos iterando os resultados e montando uma lógica para escrever no arquivo .csv todas as linhas (a cada 1 segundo). No final do método executamos um close() que irá fechar o arquivo.

getIterator()

O método getIterator() realiza o cálculo para sabermos quantas vezes precisamos invocar a API, de acordo com o limite e o total de registros recuperados no período informado.

responseToArray()

Em seguida temos o método responseToArray, que simplesmente trata o retorno e transforma para array. Realizamos uma simples validação que se o retorno for diferente de HTTP 200, lançamos uma Exception.

getFilename()

Este método cria um nome para o arquivo com um hash.

writeRows()

Escreve no arquivo .csv as linhas de acordo com o array que é recebido por parâmetro.

setHeader()

Cria o cabeçalho do arquivo com as devidas colunas

writeLine()

Recebe um array e escreve no arquivo com o delimitador default.

close()

Fecha o arquivo, nesse momento já teremos um arquivo .csv no nosso diretório

Tá, e como eu uso isso???

Simples…

Bom, foi um exemplo básico, mas se usarmos a imaginação podemos criar abstrações e já implementar os outros relatórios de SMS, Chamada, Composto, etc… todos seguem basicamente a mesma estrutura…

Ficou com dúvidas?

Posta no nosso fórum que estaremos lá pra ajudá-los! 

Valeu e até a próxima!

Postagens relacionadas
Click2Call 2.0 – Ligação do seu site para seu Callcenter
Como integrar seu sistema com o webphone hidden da TotalVoice
Como automatizar atendimento e integrar telefonia com seu sistema
Voicemail ou Correio de Voz – O que é e como usar?
Como encantar seus clientes e vender mais com o poder do SMS e TTS

Pin It on Pinterest