GAPI: Failed to request account data

Wamp  erro
  • 01 de Mar de 2013
  • 5703 Visualizações
  • 62 Comentários

Olá pessoal, venho compartilhar uma rápida dica para você que está tentando usar o GAPI – Google Analytics PHP Interface e se deparou com o seguinte erro:

Exception: GAPI: Failed to request account data. Error: " Error 404 (Not Found)!!1 *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:[email protected] screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}} 404. That’s an error. The requested URL /analytics/feeds/accounts/default?start-index=1&max-results=20 was not found on this server. That’s all we know. " in ../classes/gapi.class.php on line 92

Bom, alguns usuários me reportaram dizendo que houve alguma falha nos meus arquivos. Não conformado, fui revisá-los :). Constatei que meus arquivos estão todos corretos e que o problema seria um erro de conexão do próprio GAPI, devido a alguma alteração de endereço do Google. Veja a solução:

Abra o arquivo gapi.class.php e localize a linha 32, que deve constar:

const account_data_url = 'https://www.google.com/analytics/feeds/accounts/default';

Substitua por:

const account_data_url = 'https://www.googleapis.com/analytics/v2.4/management/accounts/~all/webproperties/~all/profiles';

E na linha 33 que deve constar:

const report_data_url = 'https://www.google.com/analytics/feeds/data';

Substitua por:

const report_data_url = 'https://www.googleapis.com/analytics/v2.4/data';

Salve o arquivo e execute. Veja que, se você digitou seu usuário e senha corretamente, o GAPI irá listar todos os perfis relacionados. Um abraço!

TAGS: php, gapi, Failed to request account data, tiagomatosweb, cakephp

Deixe um comentário


62 Comentários

    • Ola! Alguem sabe se o GAPI, esta com problema de autenticação hoje, pois hoje de manhã normal, agora tarde começou dar falha na autenticação, alguem sabe o que pode ser. Obrigado

      • Não sei te informar, mas algumas pessoas vieram me perguntar essa semana sobre isso.

      • O Google atualizou para o GAPI 2.0, mas também, mudou a forma de buscar a autenticação do ID, deixaram mais seguro. GAPI 2.0 é esse: https://github.com/erebusnz/gapi-google-analytics-php-interface Tutorial: https://console.developers.google.com/project https://developers.google.com/identity/protocols/OAuth2ServiceAccount#creatinganaccount

        • Olha aí a solução! Funciona mesmo Alex? hahaha. Ótima contribuição! Vou testar em um futuro próximo.

          • Olá Tiago, deu certo sim. Apenas criei um projeto aqui: https://console.developers.google.com/project, fiz os download do "key.P12" e dei autoridade de ler e editar no google analytics com o Endereço de e-mail que tem no projeto que é esse: "[email protected]". Essa foi a solução mais básica que encontrei.

            Pelo o que eu li tem várias outras formas de buscar os dados do Google Analytics API.

      • verdade aconteceu com os meus relatorios de clientes. estou caçando na web se tem alguma atualização.

        • É! Já teve um pessoal aí que corrigiu o GAPI. Eu estou sem tempo no momento para verificar isso.

    • Me ajudou bastante. Obrgado.

      • Obrigado pelo seu feedback Maicon! Apareça sempre.

    • Problema resolvido! ;) É só trocar a variável $google_results das linhas 279 e 280 por $xml.

      • Olha aí uma boa dica do Guilherme... valeu jovem!

    • Fiz os ajustes que estão nesse post e funcionou, porém surgiram os erros abaixo: Message: Trying to get property of non-object Line Number: 279 Message: Undefined variable: google_results Line Number: 280 O pessoal que tem problema com autenticação PROVAVELMENTE precisa ativar o "acesso para aplicações menos seguras" no painel do Google Analytics. Eu recebi um e-mail avisando sobre uma tentativa de acessar minha conta e nesse e-mail do Google tinha um link pra ajustar isso.

    • Após rodar o meu site aqui, e com aquelas linhas acima já alteradas, deu isso. Será que eu posso mexer no tempo? Fatal error: Maximum execution time of 30 seconds exceeded in C:\xampp\htdocs\mineracao\gapi.class.php on line 508

      • Oi Caio, pode sim com certeza! Só que este tempo é relacionado ao seu servidor apache e não o tempo de busca do GAPI. Abra seu php.ini e altere o valor da variável "max_execution_time".

    • Boa tarde Tiago. Eu segui os dois tutoriais e meu erro foi: xxxxx = usuário e senha: Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Error=BadAuthentication Info=InvalidSecondFactor "' in /home/ghiro846/public_html/williammoreschi.com.br/Google/gapi.class.php:418 Stack trace: #0 /home/ghiro846/public_html/williammoreschi.com.br/Google/gapi.class.php(62): gapi->authenticateUser('williammoreschi...', 'mor1q2w3e') #1 /home/ghiro846/public_html/williammoreschi.com.br/Google/pegando-ID.php(6): gapi->__construct('xxxxx...', xxxxx') #2 {main} thrown in /home/ghiro846/public_html/williammoreschi.com.br/Google/gapi.class.php on line 418

      • Olá Wiliam, isso é um erro claro de autenticação. verifique suas credenciais se estão corretas.

    • Te amo!
      ahuahuahush
      Deu muito certo!

    • Para os que estão recebendo a mensagem "GAPI: Failed to authenticate user. Error: Error=BadAuthentication", mesmo convictos que os dados de acesso estão corretos, o problema pode ser nas permissões liberadas nas configurações de conta do Google.

      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".

    • Thiago bom dia. Eu fiz todos os passos e o meu GAPI funciona. Mas me deparei com uma situação, como meu site ele tem vários canais de notícias, ex. Novelas, Filmes... O meu problema hoje é. que as vezes ele processa normalmente e as vezes dá time out e nem chega a listar o meu resultado.

      Abraços

      • Olá Marcos, ele exibe algum erro? Se sim, poste o erro no gist e me cole a url aqui. Assim posso te ajudar melhor.

    • Opa, obrigado amigo!

      Me salvou hoje, rsrs.

      Um grande abraço xará, e parabéns pelo site!

      • Opa! Obrigado meu caro! Apareça sempre!

    • Mandei um comentário, você apagou?

      Enfim, vou mandar novamente!

      Comigo não funcionou, pode verificar?

      http://oriobranco.net/gapi/pegando-ID.php

      Obrigado!

      • Olá Josué, não, eu não apaguei algum comentário. Sobre o erro que apresenta, é claro. Falha de autenticação. Veja nessa linha "GAPI: Failed to authenticate user". Verifique se seu usuário e senha estão corretos.

    • Continua mostrando erro, fiz alterações, mas nada!

      http://www.oriobranco.net/gapi/pegando-ID.php

    • Olá, Tiago, parabéns, funcionou perfeitamente aqui! Obrigado!

      • Obrigado Ed Silva! \o/

    • Cara, consegui já anteriormente o caso é eu recebo uma listagem com os ID DA CONTA, até aí tudo bem, se eu especificar um qualquer já testei e funciona normalmente, o problema é que tenho várias contas e algumas delas ele não pega o nome ou pega contas já excluídas então não consigo distinguir quais são elas pra mim poder utilizar o ID correto. Exemplo: Google Analytics View (Profile) Todos os Dados do Web Site => ####### (ID) e existem vários perfis desta maneira, alguns estão com o nome correto.

    • Tiago, meu código está dando o seguinte erro:

      "Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request account data. Error: "GDataauthErrorAuthorizationInvalid Credentials"' ..."

      Meu código está o seguinte:
      "define("ga_profile_id", "XXXXXX");
      $gapi = new gapi('email', 'senha', ' ');
      $gapi->requestAccountData();"

      *obs: se eu deixar o sem o token , ex: $gapi = new gapi('email', 'senha');
      ele da o seguinte erro:

      "Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Error=BadAuthentication Info=InvalidSecondFactor"

      Por isso estou deixando ele vazio mesmo.

      Parabéns pelo post.
      Fico no aguardo de sua ajuda.
      Obrigado

      • Olá Felipe, obrigado por comentar. Você segui o passo-a-passo de como usar o GAPI?

        • Na verdade depois de muito estudar o código, percebi o erro.Eu estou precisando usar uma métrica da versão 3.0 da api.
          Que consta nesse link:
          https://developers.google.com/analytics/devguides/reporting/realtime/dimsmets/

          Dava dando uma olha, me parece que os links da class gapi estão desatualizadas.

          Tentei trocas a variável account_data para a versão 3, mais não deu certo:
          account_data_url = 'https://www.googleapis.com/analytics/v3/';

          Troquei também:

          $open_search_results = $xml->children('http://a9.com/-/spec/opensearch/1.1/');
          foreach($entry->children('http://schemas.google.com/analytics/2013')->metric as $metric).

          Mais também não deu certo.

          Valeu Tiago.

    • Ótimo Tutorial, funcionou perfeitamente!

      Parabéns!

      • Obrigado Willian!

    • Bom dia Tiago!
      Fiz as alterações e agora o erro que aparece é esse:
      Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to request report data. Error: "Request failed, fopen provides no further information"' in C:\wamp\www\gapi-1.3\gapi.class.php on line 220
      ( ! ) Exception: GAPI: Failed to request report data. Error: "Request failed, fopen provides no further information" in C:\wamp\www\gapi-1.3\gapi.class.php on line 220
      Você saberia me dizer o que pode estar acontecendo???
      Obrigada!

      • Olá Daniela, primeiro eu recomendaria você dar uma olhada nos recursos necessários para rodar o GAPI, aqui: https://code.google.com/p/gapi-google-analytics-php-interface/. Se ainda assim estiver dando erro, coloque seu aplicação em servidor web em ambiente de produção. Se ainda assim não resolver, sugiro rever os dados de acesso como login, senha e perfil. Espero ter ajudado de alguma forma. Abs.

    • O irmao o meu esta dando o erro de autenticação ainda e eu ja ate troquei o a senha e nada ainda. persiste o mesmo erro oq sera?

      • Verifique se o ID do Perfil está correto!

        • Verfiquei novamente e persiste o erro.

          define('ga_profile_id', 'UA-41939810-1');
          $ga = new gapi( [email protected]', 'minha senha' );

          • Olá Jhonathan. Dê preferencia para manter as perguntas pelo blog e não por e-mail. Pense que algum outro desenvolvedor pode ter a mesma dúvida que você e assim já ajudá-lo, certo? Prefira também colocar código no gist ou algo simular. Dessa forma conseguiremos uma melhor produção na conversação. Sobre a sua dúvida, você está colocando o profile ID errado. Esse código é o ID de ACOMPANHAMENTO. Você deve buscar o PROFILE ID no Google Analytics. Fique atento pois exite o ID DA CONTA, o ID DE ACOMPANHAMENTO e o ID DO PERFIL. Este último é o que você deve usar para definir ga_profile_id. Grande abraço e obrigado por acessar o blog.

            • define('ga_profile_id', '78424271'); esta correto agora certo?

              • Configurei aqui e funcionou perfeitamente, com o profile ID=78424271. Dá uma revisada no seu código. Uma dica é fazer tudo novamente.

              • Sim, se este número referir-se ao profile ID e se seu login/senha estiverem corretos. Conseguiu?

            • Persiste o erro ja alterei senha e tudo.


              requestReportData(ga_profile_id, 'pagePath', array('uniquePageviews', 'pageviews'), '-uniquePageviews', null, null, null, null, 300);

              echo 'URLVisitas ÚnicasVisualizações';
              foreach ($ga->getResults() as $result) {
              echo '', $result->getPagePath(), '', $result->getUniquePageviews(),
              ' ', $result->getPageviews(), '';
              }
              echo '';
              ?>

    • Oi Tiago, tudo bem?... O erro de usuário e login persiste
      GAPI: Failed to authenticate user. Error: "Error=BadAuthentication...
      O login e senha estão corretos, não consigo entender o que pode ser.
      Alguma configuração do Google Analytics de segurança? Como posso liberar se for o caso?
      Muito obrigado

      • Olá Rodrigo, creio que não precisa nada do Google Analytics. O problema está no login mesmo. A mensagem é clara, informa erro de autenticação. Reveja isso!

    • Já no meu caso o erro é esse,

      Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Request failed, fopen provides no further information"' in C:\wamp\www\Projetos\admin\admin\gapi\gapi.class.php on line 418
      ( ! ) Exception: GAPI: Failed to authenticate user. Error: "Request failed, fopen provides no further information" in C:\wamp\www\Projetos\admin\admin\gapi\gapi.class.php on line 418

      • Olá Leno, a mensagem na linha "GAPI: Failed to authenticate user" informa que houve erro de autenticação. Sugiro rever o login/senha. Abs.

        • O que vc fez para estar resolvendo?

          • Coloca meu e-mail para acessar o perfil do seu analytics. Assim dá para fazer um teste e ver o que você está errando.

            • deu certo?

              • Configurei aqui e funcionou perfeitamente, com o profile ID=78424271. Dá uma revisada no seu código. Uma dica é fazer tudo novamente.

            • Coloquei conforme solicitado.

        • Corrigi o erro aqui, muito obrigado.

          • Oq vc fez??

          • Que bom! Espero ter ajudado em algo! Abs.

    • Tiago, vc salvou minha vida!!!obrigado!!!!

      • Que legal Lucania! É bom saber que ajudem alguém em alguma coisa. :) Obrigado pelo Feedback.

    • Muito bom cara, deu certo aqui!!

      • Que bom! Espero que tenha ajudado! Abs

    • Olá meu amigo fiz a alteração e continua dando erro

      Fatal error: Uncaught exception 'Exception' with message 'GAPI: Failed to authenticate user. Error: "Error=BadAuthentication "' in /home/radiocib/public_html/gapi/gapi.class.php:418 Stack trace: #0 /home/radiocib/public_html/gapi/gapi.class.php(62): gapi->authenticateUser('Seu e-mail', 'Sua senha') #1 /home/radiocib/public_html/gapi/hoje.php(6): gapi->__construct('Seu e-mail', 'Sua senha') #2 {main} thrown in /home/radiocib/public_html/gapi/gapi.class.php on line 418

      • Olá Michael, veja que o erro não é o qual informei. O seu erro é "GAPI: Failed to authenticate user. Error: Error=BadAuthentication". Provavelmente seu login e/ou senha estão errados.