Pegando dados do Google Analytics com PHP através da classe GAPI

Screenshot Google Analytics
  • 28 de Dez de 2012
  • 12942 Visualizações
  • 75 Comentários

Ultimamente tive que colocar o bom e velho contador de visitas no site de um cliente que fosse restrito ao administrador. Sendo assim, pensei em fazer uma aplicaçãozinha para contar o carregamento de cada página resultando na quantidade de pageviews (visualizações de páginas). Como o cliente gostaria de ter este número na sua interface do admin do site, este método seria simples e rápido, mas talvez não tão eficaz.

Não conformado com a minha idéia, fui então ao Google encontrar uma solução mais viável e interessante. Foi aí que descobrir o GAPI - Google Analytics PHP Interface. O GAPI é um projeto opensource que se conecta com sua conta do Google Analytcs e apresenta os dados que você solicitar com poucas linhas de código. Isso mesmo, rápido, simples e fantástico.

Como instalar?

Primeiramente você deve baixar o GAPI na página oficial do projeto. Após isso, descompacte-o e localize um arquivo PHP chamado gapi.class.php. É ai que a banda vai tocar hehehe! Vamos lá.

Incluindo a classe gapi:

Inclua o gapi.class.php na sua aplicação através do require_once. Seu código deve ficar assim:

<?php
    //Inclui a classe gapi   
    require_once('gapi.class.php');
?>

Autenticando:

Para acessar o Google Analytics, você precisa informar os dados de login e senha, certo? Então informe para o GAPI também.

<?php
    //Inclui a classe gapi
    require_once('gapi.class.php');
    
    //Autenticação com seu login e senha
    $gapi = new gapi('Seu e-mail', 'Sua senha');
?>

Listando perfis:

Vamos descobrir quais perfis de sites estão cadastrados nesta conta do Google Analytics, pois precisaremos da identificação (ID) para capturar os dados desejados. Para isso, utilizaremos o método requestAccountData().

<?php
    //Inclui a classe gapi
    require_once('gapi.class.php');
    
    //Autenticação com seu login e senha
    $gapi = new gapi('Seu e-mail', 'Sua senha');
    
    //Pega os dados da conta e perfis dos sites existentes
    $gapi->requestAccountData();
    
    //Imprime os resultados encontrados
    foreach ($gapi->getResults() as $perfil) {
        echo $perfil . ' => ' . $perfil->getProfileId() . '<br />';
    }
?>

Gerando relatórios

Para gerar relatórios de qualquer informação, você precisa utilizar o método requestReportData() que possui 9 parâmetros. Vou explicar cada um deles para ficar fácil o entendimento na hora do uso.

$report_id
Tipo: string
Descrição: é o ID do perfil que falei agora a pouco lá em cima.
Exemplo: '12345678' (Vamos usar este ID fictício nos testes seguintes).

$dimensions
Tipo: array
Descrição: é a frequência dos dados que deseja obter.
Exemplo: array('browser'), array('month'), array('day'), array('week'), etc. Veja aqui a lista completa das dimensões que podem ser usadas.

$metrics
Tipo: array
Descrição: são as métricas que o Analytics faz sobre as visitas.
Exemplo: array('pageviews'), array('visits'), etc. Veja aqui a lista completa das métricas que podem ser usadas.

$sort_metric (opcional)
Tipo: array
Descrição: classificação de ordem para $dimensios e $metrics.
O padrão é ascendente. Utilize o símbolo '-' para decrescente.
Exemplo: array('-visits').

$filter (opcional)
Tipo: string
Descrição: é o filtro da pesquisa.
Exemplo: country == 'Brazil' && ( browser == 'Firefox' || browser == 'Chrome'). Veja aqui mais detalhes de como usar o controle de filtros.

$start_date (opcional)
Tipo: string
Descrição: início do período da pesquisa (YYYY-MM-DD).
Exemplo: '20012-11-28'

$end_date (opcional)
Tipo: string
Descrição: fim do período da pesquisa (YYYY-MM-DD).
Exemplo: '2012-12-28'

$start_index (opcional)
Tipo: int
Descrição: início do índice de resultados.
Exemplo: 1

$max_results (opcional)
Tipo: int
Descrição: máximo de resultados retornados. O máximo é 1000 resultados.
Exemplo: 50

Pronto, agora você já sabe o ID do seu perfil e já está utilizando o GAPI conectado ao Google Analytics. Vamos ver alguns exemplos de uso real que facilitará a vida do seu cliente, pois a nossa já está fácil com o GAPI :).

Pegando o total de visitas e pageviews da data atual:

<?php
    //Inclui a classe gapi
    require_once('gapi.class.php');
    
    //Autenticação com seu login e senha
    $gapi = new gapi('Seu e-mail', 'Sua senha');
    
    //ID do perfil do site
    $id = '12345678';
    
    //Busca os pageviews e visitas do dia
    $inicio = date('Y-m-d');
    $fim = date('Y-m-d');
    
    $gapi->requestReportData($id, 'day', array('pageviews', 'visits'), null, null, $inicio, $fim, null, null);
    foreach ($gapi->getResults() as $dados) {
        echo 'Total de visitas hoje é: ' . $dados->getVisits();
        echo '<br>';
        echo 'Total de pageviews hoje é: ' . $dados->getPageviews();
    }
?>

Pegando o total de visitas e pageviews do mês atual:

<?php
    //Inclui a classe gapi
    require_once('gapi.class.php');
    
    //Autenticação com seu login e senha
    $gapi = new gapi('Seu e-mail', 'Sua senha');
    
    //ID do perfil do site
    $id = '12345678';
    
    //Busca os pageviews e visitas do mês atual
    $inicio = date('Y-m-01'); //Atribui o 1º dia do mês atual
    $fim = date('Y-m-t'); //Atribui o último dia do mês atual
    
    $gapi->requestReportData($id, 'month', array('pageviews', 'visits'), null, null, $inicio, $fim, null, null);
    foreach ($gapi->getResults() as $dados) {
        echo 'Total de visitas do mês atual é: ' . $dados->getVisits();
        echo '<br>';
        echo 'Total de pageviews do mês atual é: ' . $dados->getPageviews();
    }
?>

Pegando o total de visitas e pageviews do mês passado:

<?php
    //Inclui a classe gapi
    require_once('gapi.class.php');
    
    //Autenticação com seu login e senha
    $gapi = new gapi('Seu e-mail', 'Sua senha');
    
    //ID do perfil do site
    $id = '12345678';
    
    //Busca os pageviews e visitas do mês passado
    $inicio = date('Y-m-01', strtotime('-1 month')); //Atribui o 1º dia do mês passado
    $fim = date('Y-m-t', strtotime('-1 month')); //Atribui o último dia do mês passado
    
    $gapi->requestReportData($id, 'month', array('pageviews', 'visits'), null, null, $inicio, $fim, null, null);
    foreach ($gapi->getResults() as $dados) {
        echo 'Total de visitas do mês passado é: ' . $dados->getVisits();
        echo '<br>';
        echo 'Total de pageviews do mês passado é: ' . $dados->getPageviews();
    }
?>

Então é isso, essa classe é muito útil e as possibilidades são infinitas, basta você ter conhecimento da classe GAPI e criatividade para conjugar os relatórios. Se ainda quiser complicar a coisa, coloque os resultados em um gráfico usando jQuery. Tenho certeza que seu cliente ficará muito satisfeito.

A classe GAPI se tornou padrão em meus projetos com sites administráveis :).

Espero que tenham gostado e até a próxima.

TAGS: google analytics, php, classe gapi, gapi, tiagomatosweb

Deixe um comentário


75 Comentários

    • Bom dia Srs. sei que o post é antigo mas gostaria de tentar tirar uma dúvida que tentei através de outros meios e não consegui... Alguém saberia me dizer se existe filtro de IP, hoje já faço a filtragem por trafego apenas do Brasil, colocando nos filtros "'country == Brazil';", tentei de diversas formas incluir algo referente a IP nesta cláusula mais sem sucesso, alguém poderia me dizer se é possível?

      • Fala Tiago beleza? Realmente o post é antigo e nunca mais coloquei a mão na massa nisso! mas em breve vou voltar com meus projetos particular e darei um boost no blog. Caso eu encontre sua solução, entro em contato

    • Bom dia, o meu esta funcionando perfeitamente, obrigado! Gostaria de saber como pegar as visitas em tempo real no meu site? se tem 60 pessoas e sai uma fique 59. obrigado

    • Olá,

      Parabéns pelo post.

      Poderia me orientar numa situação, onde ao fazer a autenticação do email e senha, está dando o seguinte erro ao usar o localhost.
      //Inclui a classe gapi
      require 'gapi.class.php';

      //Autenticação com seu login e senha
      $gapi = new gapi([email protected]', 'xxxxxxx');

      ?>

      ERRO
      Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed load key file "xxxxxxx". File could not be found.' in C:\xampp\htdocs\googleanalytics\gapi\gapi.class.php:632 Stack trace: #0 C:\xampp\htdocs\googleanalytics\gapi\gapi.class.php(54): gapiOAuth2->fetchToken('fernando.nvicen...', 'xxxxxxx', NULL) #1 C:\xampp\htdocs\googleanalytics\gapi\pegando-ID.php(10): gapi->__construct('fernando.nvicen...', 'nascimento78') #2 {main} thrown in C:\xampp\htdocs\googleanalytics\gapi\gapi.class.php on line 632


      O gapi.class.php peguei de https://github.com/erebusnz/gapi-google-analytics-php-interface

      Fico no aguardo da orientação, desde já agradeço pela atenção.

      At

      • Parece que está faltando algum arquivo aí, pois está dizendo "File could not be found"

    • Parabéns cara, muito bom, estava precisando hahahaha!!!

      • Legal Lucas, mas verifique que já tem novas versões do GAPI.

    • Caro Thiago, adorei esse metodo pra usar a gapi, e eseu tentnado implementar em um server local.. inclusive o gapi dele ja fincona com o exemplo doa google!! mas quando usei os seus exemplos.... aparecem o mesmo erro Fatal error: Class 'gapi' not found in C:\xampp\htdocs\thiagomatos\hoje.php on line 7 o que pode ser? AJUDE-ME please !!! :) {]s Sena

      • Opa Roberval. O GAPI sofreu algumas alterações de acordo com o pessoa aí. E eu não tive tempo de olhar ainda e postar as novidades... fico devendo dessa vez!

    • Olá, boas Tiago; Vi o seu post e na parte: fazer uma aplicaçãozinha para contar o carregamento de cada página resultando na quantidade de pageviews, gostaria de obter contigo um orçamento para desenvolvimento de um script que faz a contagem de pageviews da meus clientes ( mais de 1), Aguardo o seu feeedback, p.f Atenciosamente; Almerio Lopes

      • Olá Almerio, desculpe mas no momento estou impossibilitado de pegar mais projetos devido a grande demanda!

    • Fala pessoal. Eu ja verifiquei e consegui atualizar o meu. Tudo que eu tinha desenvolvido eu joguei fora.... essa API nao funciona mais.

      agora é obrigatorio usar a autenticação Oath2.

      1. Cria uma configuração no GOOGLE CONSOLE
      2. Incrivel se você seguir este link por inteiro vc consegue como eu FIZ.

      Link: https://developers.google.com/analytics/devguides/reporting/core/v3/coreDevguide

      Se tiverem dúvidas so falar.

      • Olha aí a dica do Apolo! Obrigado por compartilhar!

      • Apolo,

        Estou com algumas dúvidas.

        Fiz a criação da credencial, onde gerou ID do cliente e Chave secreta do cliente, só que não estou sabendo dar procedimento.

        $client = 'O QUE COLOCO AQUI?';// FIZ O TESTE COM OS DOIS ID do cliente e Chave secreta do cliente, E DA ERRO Call to a member function setUseObjects()
        // Return results as objects.
        $client->setUseObjects(true);

        $analytics = new apiAnalyticsService($client);


        Pede me passar o seu email de contato?

        At

    • Oi tem como fazer uma atualização desse post não funciona a class não autentica o usuario

      • Olá meu xará! Cara, tem uma rapaziada aí processando isso! Eu no momento estou atolado de tarefa e sem tem algum pra produzir isso. Assim que eles tiverem uma solução vou publicar, fechado?!

        • valeu desde já agradeço

    • Tiago, teus posts resolveram um grande desejo que sempre tive em desenvolvimento. Colocar os dados do Analytics no meu painel administrativo.

      Alem do pageviews e do visits também usei os newUsers, avgSessionDuration e o bounceRate. Todos funcionaram corretamente. Entretanto estou tendo problemas para formatar o avgSessionDuration. No dashboard do Analytics tenho 00:01:18 e no meu painel chega o valor 77.061403508772 o que devo fazer para formatar este valor corretamente?

      Outra coisa, estou configurando um gráfico para mostrar as visitas diariamente dos últimos 30 dias. Tem alguma ideia de como faria isso?

      Abraços.

      • Olá Pablo, primeiro você tem que saber em qual formato este valor se encontra. Será em milisegundos? Realmente não sei te dizer... Mas creio que você possa usar o strtotime.

        Fico feliz em saber que te ajudei de alguma forma. Apareça sempre! Abs.

        • Tiago, Resolvi o problema usando gmdate("H:i:s", $tempoMedio); Agora minha questão é outra. No admin eu coloquei um gráfico pra mostrar a evolução das visitas nos últimos 30 dias. O problema é que não consigo recuperar a data, somente a quantidade de visitas. Teria alguma sugestão? Abraços.

          • $dados->getDay(), resolve? :)

    • qual a versão do gapi.class.php que vc uso

      • Versão 1.3

    • não funciona tem que atualiza esse post isso não e mais bem assim que funciona a api do google mudou

      • qual a versão do gapi.class.php vc uso

        • Versão 1.3

      • Olá Tiago, vou procurar a atualizar sim, mas meus arquivos com GAPI ainda estão funcionando. Abs.

    • Estou testando esse codigo, porem fica em branco, e nao me traz nada, percebi que o codigo para de rodar na linha de Autenticação e nao da nenhum erro. alguem saberia me dizer o que pode estar dando de errado, o email e a senha esta corretas.

      • Olá Leonardo, tente debugar o seu código, reveja as credenciais de acesso. Tente refazer a rotina toda novamente... Se exibir algum erro, coloque no gist e informe a URL.

        • Olá Tiago, Na verdade eu apenas copiei o seu codigo e coloquei o login e senha do Analytics, e na me retorna nada. Mandando escrever na linha abaixo da Autenticação na escreve, como se ali desse algum erro, segue link: http://www.tekbond.com.br/painel/estatistica/pegando-ID.php

          • Verifique se seu login do Google está com permissão de acessar os aplicativos e API´s...

            • Tiago, por acaso é preciso eu gerar uma chave da API para que ele tenha a permissão? Por eu fiz esse passo que o nosso amigo Anderson Ferreira postou nos comentários do seu post http://www.tiagomatos.com/blog/gapi-failed-to-request-account-data e mesmo assim nao funcionou: Para resolver isso: 1 - Ir até a página de Conta do Google (acessar clicando em sua foto/logotipo na página inicial do Google, e depois em "Conta"); 2 - Aba "Segurança"; 3 - Box "Permissões da conta", item "Acesso para aplicativos menos seguros", clicar em "Configurações"; 4 - Alterar de "Desativar" para "Ativar".

              • Meu caro, neste caso eu teria que ter os dados de acesso para realizar alguns testes. Me envie um e-mail que tento te ajudar nisso.

      • Luã Ciceri Schwertner
      • 06 de out de 2014
      • Responder

      Muito bom Tiago, ajudou muito cara. Só uma duvida, olhei a documentação mas não achei, queria saber se tem como ver quantos usuários estão online no momento atual ? Valeu.

      • Cara, acho que essa função não tem no GAPI não. Mas você pode usar a API do Google Analytics e capturar qualquer dado...

    • Parabéns pelo Artigo, muito esclarecedor e de muita utilidade.

      • Olá Arthur, obrigado e apareça sempre!

    • Amigo, ótimo artigo!
      Aqui funcionou tudo perfeitamente.

      Só uma pergunta... eu precisava pegar, também, o número de usuário online no site naquele instante.

      É o "Tempo Real" (Real Time) do Google Analytics.
      É possível?


      Abraços!

    • cara já tentei de tudo e continua dando BadAuthentication...
      'GAPI: Failed to authenticate user. Error........

      O usuário e senha são os mesmo que eu entro no meu email do Gmail certo?

      Já fiz até dança da chuva hehehe

      https://accounts.google.com/displayunlockcaptcha
      já mudei as linhas do seu outro post
      http://blog.tiagomatos.com/gapi-failed-to-request-account-data/#sthash.7cokC4QP.dpuf

      ja habilitei a API do google analytics na minha conta.
      https://code.google.com/apis/console

      e não funciona...

      • Robson, única coisa que posso te aconselhar é fazer de novo, revisar o seu código diversas vezes. Quando há erro de autenticação eu não tenho muito o que ajudar, infelizmente. Salvo, se você me enviar por email os dados de acesso. Assim poderei fazer um teste simples por aqui. Boa sorte!

    • Sei que este artigo tem 1 ano e meio de idade mas.. só para confirmar, o exemplo que você deu de $filter "country == ‘Brazil’ && ( browser == ‘Firefox’ || browser == ‘Chrome’)" pelo que eu li na página do GAPI, não é válido, certo? Pois o Google não oferece formas de tratar precedência..

    • Olá Tiago, tudo bem?
      Primeiramente parabéns pelo post, aqui funcionou!
      Tem como eu pegar as cidades que visitaram meu site?

      • Olá Felipe, acredito que com isso aqui http://code.google.com/p/gapi-google-analytics-php-interface/wiki/UsingFilterControl, você consiga. Obrigado!

    • Fatal error: Uncaught exception 'Exception' with message ' in C:\wamp\www\google\gapi-1.3\gapi.class.php on line 92

      Viva! dá-me este erro, estou a tentar ver o ID do google analytcs mas está dando este erro. Consegue ajudar-me?

      • já consegui resolver a questão a partir daqui:
        http://blog.tiagomatos.com/gapi-failed-to-request-account-data/

        Obrigado! :D

      • afinal não resultou. No localhost funcionou perfeitamente com esta alteração. Mas no servidor não. Tenho o seguinte erro:

        Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: .................... /gapi.class.php on line 418

        Qual poderá ser o problema?? Obrigado!

        • Paulo, o erro é claro! Veja na linha em que diz: "GAPI: Failed to authenticate user." Ou seja, erro de autenticação do usuário. Revise seus dados de login!

          • sim, os dados de login estão correctos uma vez que fiz copy past. obrigado pela ajuda!

            • À partida tenho o acesso suficiente. No meu computador trabalha tudo bem, no servidor é que não. E tenho exatamente o mesmo código e os dados de login correctos. Pode ter algum com a versão do php? Estou com a versão do PHP 5.2.

              Na imagem aparece o erro:

              http://imageshack.com/a/img842/7725/tu15.png

              • Olá Paulo, unica coisa que tenho que te dizer com este erro é que é uma falha de autenticação, pois o mesmo diz: “GAPI: Failed to authenticate user.” e "Error=BadAuthentication". Logo, é uma falha de autenticação. O erro está aí. Agora, como proceder não tenho como te ajudar muito, pois não tenho o seu código em mãos. Espero ter te ajudado de qualquer forma.

                • ok, obrigado! E parabéns pela tutorial! Só outra pequena questão, esta api permite ir buscar o tempo médio no site/página?

                  • Acredito que sim Paulo. Veja no site do desenvolvedor as possibilidades do GAPI e acompanhe suas atualizações: https://code.google.com/p/gapi-google-analytics-php-interface/.

            • Verifique também se o dado do Perfil está correto e se você tem acesso suficiente para acesso!

    • Olá, conferindo com os dados exibidos no Analytics os gráficos não batem, algo mudou ou estou fazendo algo de errado? Estou verificando se as métricas mudaram, na API continua sendo visits ou algora é visitors?

      Se puder me ajudar =)
      Valeu

      • Caro Thiago, realmente não sei te responder isso, pois ultimamente não tenho checado as atualizações do Google. Mas, como uso diariamente este recurso, creio que esteja funcionando normalmente. Espero ter ajudado. Abs.

        • Você já chegou a conferir ambos os dados e batem?
          Vlw

          • Sim, conferi agora em um dos clientes e está batendo certinho os valores de visitas e visualizações de páginas.

    • Olá Tiago, beleza ?

      Cara parabéns pelo post.. então eu precisava de uma ajuda, eu só preciso logar ele em php com o GAPI e enviar ele para a pagina do google analytics logado. Isso é possivel ?

      • Olá Juan, obrigado pelos elogios, mas me desculpe. Não entendi a sua dúvida.

    • Olá Tiago, já entendi como posso fazer os gráficos, mas queria que vc me ajudasse pelo menos em uma coisa,
      tipo, no método que exibe o dia atual eu consegui definir para exibir a data do dia em que eu quiser, tipo (Y-m-02), nisso eu criaria uma variável com o dia definido tipo dia 02 ($dia02) do mês atual, que através daí eu poderia criar os gráficos,

      Pois no gráfico que eu to usando ele pega os resultados que eu for definir, então eu ia usar as variáveis de cada dia, entende meu raciocínio, essa foi a maneira que eu achei para fazer.

      a dúvida é a seguinte, como faço para criar uma variável para cada dia?

      Desde Já Agradeço.

      • Olá Leno, você pode usar um array $dia e armazenar todos os dias nele. Seria isso?

    • Quais os parámetros que uso para exibir os gráficos do analytics no site tbm? desde já agradeço.

      • Leno, o que o Google irá te dar são apenas números (dados). Para exibir o gráfico você tem que usar uma aplicação extra. Como por exemplo o jquery Flot (http://www.flotcharts.org/).

    • Olá, gostaria de saber se é possível retornar os gráficos que são exibidos nos relatórios padrões do google analitycs.
      Agradeço desde já.

    • Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: "GDatainvalidParameteridsInvalid value 'ga:UA-39226860-1'. Values must match the following regular expression: 'ga:[0-9]+'"' in /home/andre/public_html/admin/_class/gapi/gapi.class.php:218 Stack trace: #0 /home/andre/public_html/admin/_class/gapi/mes-atual.php(15): gapi->requestReportData('UA-39226860-1', 'month', Array, NULL, NULL, '2013-03-01', '2013-03-31', NULL, NULL) #1 {main} thrown in /home/andre/public_html/admin/_class/gapi/gapi.class.php on line 218

      • Olá, veja se sua solução não está aqui: http://blog.tiagomatos.com/gapi-failed-to-request-account-data/

      • ja resolvi nao tinha olhado uma coisa aqui

        • Como resolveu?

    • Olá Tiago blz...meu também não está encontrando o usuário do google, dá uma verificado o que aparece na minha página https://gist.github.com/anonymous/3aafc2b658f3a9cf0cc0/raw/7329afe9e4c9eaebc02a0850e2e072c718f77202/gistfile1.txt

      Obrigado.

      • Olá Caubino, desculpe mas o endereço não acessou aqui. Poderia enviá-lo novamente?

      • Veja a solução aqui: http://blog.tiagomatos.com/gapi-failed-to-request-account-data/. Abs.

    • tive um fatal erro Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Google Accounts body {font-family: arial,sans-serif;} .body {margin: 0 15px; } div.errorbox-good {} div.errorbox-bad {} div.errormsg { color: red; font-size: smaller; font-family: arial,sans-serif;} font.errormsg { color: red; font-size: smaller; font-family: arial,sans-serif;} .aligns { text-align: right; } .margins { margin-left: 13px; } .floats-normal { float: left; } .floats-reverse { float: right; margin-top: 17px; } Google Home | Sign in The page you requested is invalid. ©2013 Google - Google Home - Terms of Service - Privacy Policy - Help"' in C:\xampp\htdocs\webmotor\cms\gapi.class.php:418 Stack trace: #0 C:\xampp\htdocs\webmotor\cms\gapi.class.php(62): gapi->authenticateUser([email protected]..', '1111111') #1 C:\xampp\htdocs\webmotor\cms\pegando-ID.php(6): gapi->__construct([email protected]..', '111111') #2 in C:\xampp\htdocs\webmotor\cms\gapi.class.php on line 418
      Sendo que apenas coloquei o email e a senha no arquivo q disponibilizou

      • Veja a solução aqui: http://blog.tiagomatos.com/gapi-failed-to-request-account-data/. Abs.

    • Infelizmente não funcionou, informa o Error 404 (Not Found) http://www.google.com/images/errors/robot.png, coloquei as informações corretamente e o erro aponta para o gapi.class.php on line 92.

      Pode me ajudar por email?

      • Olá Sammy, vamos conversar por aqui. Lembre-se que outros usuários podem possuir a mesma dúvida que você. Utilize o git/gist para apresentar o seu código. Me informe mais detalhes do que você fez. Assim eu e outros internáuticas poderemos te ajudar. Abs.