php google-analytics-api jwt

php - "No hay permisos suficientes" cuenta de servicio de API de Google Analytics



google-analytics-api jwt (11)

Estoy tratando de obtener datos con la API de Google Analytics a través de cuentas de servicio.

He estado buscando en stackoverflow cómo hacerlo y he estado usando exactamente el mismo código que se encuentra en varias publicaciones pero obtengo problemas para que funcione.

Fuentes:

Aplicaciones de servicio y Google Analytics API V3: ¿Autenticación OAuth2 de servidor a servidor?

Aplicaciones de servicio y Google Analytics API V3: Error 101 (net :: ERR_CONNECTION_RESET)

http://code.google.com/p/google-api-php-client/source/browse/trunk/examples/prediction/serviceAccount.php

Esto es lo que conseguí:

require_once(''googleAPIGoogle_Client.php''); require_once(''googleAPI/contrib/Google_AnalyticsService.php''); const CLIENT_ID = ''xxxxxxxx001.apps.googleusercontent.com''; const SERVICE_ACCOUNT_NAME = ''[email protected]''; $keyfile = $_SERVER[''DOCUMENT_ROOT'']."/xxxxxxx284-privatekey.p12"; $client = new Google_Client(); $client->setAccessType(''offline''); $client->setApplicationName("cc insights"); $key = file_get_contents($keyfile); $client->setClientId(CLIENT_ID); $client->setAssertionCredentials(new Google_AssertionCredentials( SERVICE_ACCOUNT_NAME, array(''https://www.googleapis.com/auth/analytics.readonly''), $key) ); $service = new Google_AnalyticsService($client); $data = $service->data_ga->get("ga:xxxx7777", "2012-01-01", "2013-01-25", "ga:pageviews"); var_dump($data);

al ejecutar, recibí el siguiente error:

Error fatal: excepción no detectada ''Google_ServiceException'' con el mensaje ''Error al llamar a GET https://www.googleapis.com/analytics/v3/data/ga?ids=ga%3Axxxx7777&start-date=2012-01-01&end-date=2013-01-25&metrics=ga%3Apageviews : (403) El usuario no tiene suficientes permisos para este perfil. '' en /Aplicaciones/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 Stack trace: # 0 / Applications / XAMPP / xamppfiles / htdocs / insights / application / libraries / googleAPI / io / Google_REST .php (36): Google_REST :: decodeHttpResponse (Object (Google_HttpRequest)) # 1 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/service/Google_ServiceResource.php(178): Google_REST :: execute (Object (Google_HttpRequest)) # 2 /Aplicaciones/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource -> __ call (''get'', Array) # 3 / Applications / XAMPP / xamppfiles / htdocs / insights / application / libraries / Google.php (46): Google_DataGaServiceResource-> get (''g in /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php en la línea 66

Debido a que estoy usando exactamente el mismo código que los ejemplos de trabajo, ¿creo que podría ser un problema con la API o la configuración de la cuenta de servicio?

Este es el usuario que agregué a la cuenta analítica:

y esto es cuentas de acceso de API:

¿Alguien sabe lo que estoy haciendo mal?


En una aplicación diferente recibí "Permisos insuficientes" y encontré que mi archivo .htaccess tenía algunas restricciones de archivos que causaban el problema.


Estaba obteniendo exactamente el mismo error y esto lo resolvió para mí:

Estaba usando la identificación de la cuenta en lugar de la ID de la vista. El cambio a View ID lo solucionó: siempre es la "Id. De visualización" y no la Id. De cuenta o propiedad (que se parece a "UA-xxx"). La ID de vista es para una propiedad web específica y se puede encontrar en Admin -> Ver (tercera columna) -> Configuración de vista. Es un número entero sin guiones.

https://.com/a/15789266/1391229


Me ayudó mucho después de 2 semanas de tratar de encontrar una solución:

Consola de Analytics -> Administrador -> Ver (Perfil) -> Ver configuración -> Ver ID


Mismo problema. Lo resolvió usando el ID VIEW en lugar del ID de cuenta (UA-XXXXX-1).

Analytics Console > Admin -> View (Profile) -> View Settings -> View ID

Y

Asegúrese de agregar la cuenta de servicio a su lista de usuarios en la consola de Google Analytics. Simplemente configurarlo en la sección Credenciales, API y Permisos de la consola de desarrollador aún no le otorgará acceso a su análisis.

Analytics Console > Admin -> Account -> User Management -> "Add permissions for:"


Obtuve el mismo error pero después de un tiempo reconocí que estaba usando este script con mi google chrome (mi propia dirección de correo electrónico) pero la API de Analytics se está ejecutando en el correo electrónico de la empresa. Entonces la solución podría ser editar la configuración de tu Google Chrome. Simplemente desconéctese de la cuenta de gmail en su google chrome (configuración) y pruébela nuevamente.



Tuve el mismo problema al usar la biblioteca .net, después de algunos retoques, encontré la solución:

Vaya a su sitio de administración de Google Analytics y agregue la cuenta de servicio como usuario y otorgue a esa cuenta los derechos necesarios




Use la ID de visualización, no la ID de cuenta, en la pestaña Administrador, ''Ver configuración'' ''Ver ID''.


podría estar utilizando otro ID de cliente: secreto del cliente: para obtener detalles de identificación de otro perfil