Estoy creando un script, basado en la guía paso a paso de Google Analytics de esta página:
https://developers.google.com/analytics/resources/tutorials/hello-analytics-api
La autorización se realiza sin problemas, hasta que intenta acceder a los datos. El código de retorno es 403 y el mensaje de error es:
El usuario no tiene ninguna cuenta de Google Analytics
Este mensaje no tiene sentido: mi cuenta tiene datos de Google Analytics, rastrea varios sitios web y puedo acceder a ellos desde el navegador web sin ningún problema. Permití la API de Analytics a través de la consola de las API de Google, y el acceso a la API me da los datos correctos.
fuente
Simplemente agregue su correo electrónico dado (formato de
71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com
)a los administradores de usuarios:
Ojalá te ayude
fuente
Estaba enfrentando el mismo problema. Se resolvió agregando la identificación de correo electrónico del usuario de la cuenta de servicio (
your [email protected]
) a los usuarios en su cuenta de Analytics debajo dePágina de inicio de Analytics -> Administrador (panel izquierdo) -> Administración de usuarios -> agregar (haga clic en el signo más en el lado derecho del menú) -> Agregar nuevo usuario -> Agregue la identificación de correo electrónico para ingresar direcciones de correo electrónico.
Ahora, esto resolverá el problema.
fuente
Se menciona en un comentario anterior, pero si agrega la dirección de correo electrónico en la Gestión de usuarios de su cuenta , no funcionará. Debe hacer clic en Gestión de usuarios debajo de la parte de visualización de la pantalla.
fuente
User Management
enlace bajo Vista en mi finalTambién recibirá este error si nunca ha iniciado sesión con la cuenta de Google con la que está intentando autenticarse.
fuente
Estaba recibiendo el error 403 hasta que cambié los permisos de la cuenta de correo electrónico desde Google Analytics de 'Leer y analizar' a otra cosa, lo guardé y luego cambié los permisos nuevamente a 'Leer y analizar' y funcionó.
fuente
En caso de que eso no funcione, intente abrir su archivo JSON que ha descargado y busque
client_email
y copie esa dirección de correo electrónico y agréguela al archivo de visualizaciónHaga clic en
Si eso todavía no funciona
fuente
Estaba golpeando el error 403. Estos pasos me ayudaron. Para ser claros, estaba tratando de hacer que la muestra de Google "HelloAnalytics.php" funcionara con OAuth (sin interacción del usuario, adecuada para el trabajo cron, etc.).
Después de habilitar la API de Analytics, creé una nueva "Cuenta de servicio" en API y autenticación / credenciales; y guardó el par de claves .p12. Luego entré en la consola de administración de usuarios de Analytics y agregué la dirección de correo electrónico de ese usuario de servicio.
La autorización .p12 con la API de PHP funciona si marco solo "Leer y analizar" solo en la lista de permisos. Si agrego "Administrar usuarios" y / o "Editar", obtengo el 403. Espero que esto sea útil, estuve trabajando en esto durante un par de horas ...
fuente
También tuve este problema y descubrí que el problema era que había solicitado demasiados permisos. La consola del desarrollador dice que solicite ambos
http://www.googleapis.com/auth/analytics
yhttp://www.googleapis.com/auth/analytics.readonly
permisos. Esto no funcionó cuando también estaba usando elsub
reclamo. Unsub
reclamo le indica a Google que emita un token de acceso que opera en nombre de otro usuario , en mi caso, la cuenta de Google que posee la cuenta de servicio. Eliminé elanalytics
permiso y me quedéanalytics.readonly
con el reclamo secundario:El token emitido por Bearer me permite realizar (al menos algunas) consultas de Google Analytics a perfiles que son propiedad de cuentas de Google completamente diferentes, pero que se han compartido (solo lectura) con mi usuario de gmail ([email protected]) .
fuente
Me las arreglé para solucionar esto asegurándome de que
client = Google :: APIClient.new (: application_name => 'X',: application_version => '1')
la variable de nombre de la aplicación 'X anterior era el nombre de la CUENTA en el panel de GA, no el nombre de PROPIEDAD, que en mi caso era la URL real del sitio al que quiero acceder.
Confuso, pero afortunadamente arreglado (¡no gracias a Google!)
fuente
El problema ocurre porque no proporcionamos un argumento "sub". A menos que proporcionemos esto, la llamada se realiza en nombre de ese largo correo electrónico de cuenta de servicio.
¡Tan solo proporcione un subargumento, con un correo electrónico al que ya ha dado acceso en el informe y las cosas deberían funcionar bien!
fuente
Recibí el mismo error, ya que no inicié sesión en google analytics. Así que lo resolví iniciando sesión en la cuenta de análisis.
fuente
Este mensaje que recibimos cuando no se otorga permiso para
client_email
, en google alalytics ,client_email
se obtiene del archivo JSON . para otorgarle permiso aclient_email
su aplicación, diríjase al sitio de Google Analytics y haga clic en "Administrador (icono de configuración)"obtendrá la lista del menú a la derecha, haga clic en "Ver administración de usuarios"
Allí verá el icono "+" y "agregar usuario",
una vez que haga clic en eso, debe agregar
client_email
el "campo de dirección de correo electrónico" y guardarlo, ¡debería estar listo!fuente
El usuario para el que intenta utilizar la API no ha habilitado su servicio de GA.
Simplemente tener una cuenta de google no es suficiente .
fuente
En lugar de usar una cuenta de servicio, puede evitar la necesidad de agregar nuevos permisos de usuario (según las principales respuestas en este hilo) usando
OAuth client ID
credenciales.Vaya al panel de credenciales de API y haga clic en "Crear credenciales" -> "ID de cliente OAuth". Luego, debe obtener un ID de cliente y un secreto de cliente que necesitará para autenticar la API.
Ahora puede usar
OAuth2WebServerFlow
para autenticarse por uso. Aquí hay un ejemplo de python3:fuente