163 votes

Analytics Google API Error 403 : "L'utilisateur n'a pas de compte Google Analytics"

Je suis en train de créer un script, basé sur le guide pas à pas de Google Analytics de cette page :

https://developers.google.com/analytics/resources/tutorials/hello-analytics-api

L'autorisation se fait sans problème, jusqu'à ce qu'il tente d'accéder aux données. Le code de retour est 403, et le message d'erreur est :

L'utilisateur n'a pas de compte Google Analytics

Ce message n'a aucun sens : mon compte contient des données Google Analytics, qui suivent plusieurs sites web, et je peux y accéder depuis un navigateur web sans problème. J'ai autorisé l'API Analytics via la console Google APIs, et l'accès à l'API me donne les bonnes données.

338voto

Sebastian Motraghi Points 2468

J'ai eu ce problème aussi. Je l'ai résolu en ajoutant l'adresse électronique de mon compte de service au profil Google Analytics auquel je voulais qu'il accède.

J'ai obtenu l'adresse électronique (quelque chose comme xxxxxx@developer.gserviceaccount.com) du compte de service en regardant sous l'onglet "API Access" dans la console Google APIs.

Ensuite, j'ai suivi Instructions de Google pour l'ajout d'une adresse électronique à un profil Analytics . Maintenant, tout fonctionne comme prévu.

Bonne chance !

9 votes

C'est la meilleure réponse, je l'ai essayée et elle fonctionne comme un charme !!! Merci beaucoup @Sebastian !

1 votes

Si vous avez plus d'un profil dans votre compte et que vous voulez accéder à leurs données en utilisant l'API GA, devez-vous continuer à ajouter le xxxxx@developer.gserviceaccount.com au profil Analytics, ou existe-t-il un moyen plus efficace sans impliquer une démarche manuelle. Merci !

2 votes

@mongotop vous êtes le bienvenu ! Malheureusement, je ne connais pas de moyen plus efficace de le faire - faites-nous savoir dans les commentaires si vous en trouvez un.

4voto

Andrew Bullock Points 14899

Vous obtiendrez également cette erreur si vous ne vous êtes jamais connecté avec le compte Google avec lequel vous essayez de vous authentifier.

6 votes

Je vais juste laisser ça ici : Lien vers le Interface web de Google Analytics

0 votes

Et où est le mot de passe pour l'email ? J'ai essayé le mot de passe que google me montre avant de télécharger le certificat .p12 mais il n'est pas valide.

0voto

mogsie Points 1998

J'ai eu ce problème aussi, et j'ai découvert que le problème était que j'avais demandé trop de permissions. La console du développeur indique de demander à la fois http://www.googleapis.com/auth/analytics et http://www.googleapis.com/auth/analytics.readonly les permissions. Cela n'a pas fonctionné lorsque j'utilisais également la fonction sub réclamation. A sub La revendication demande à Google d'émettre un jeton d'accès qui fonctionne au nom d'un autre utilisateur - dans mon cas, le compte Google qui possède le compte de service. J'ai supprimé le analytics et s'est contenté de analytics.readonly avec la sous-réclamation :

{
  "iss":"123123123123123-xxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com",
  "sub":"me.example@gmail.com"
  "scope":"http://www.googleapis.com/auth/analytics",
  ...
}

Le jeton Bearer émis me permet d'effectuer (au moins certaines) requêtes Google Analytics sur des profils appartenant à des comptes Google complètement différents, mais qui ont été partagés (en lecture seule) avec mon utilisateur gmail (me.example@gmail.com).

1 votes

Que se passe-t-il lorsque j'utilise le SDK client de Google Analytics ?

0 votes

J'aimerais que cela fonctionne ! J'obtiens l'erreur suivante lorsque j'essaie de faire la même chose : Google_Auth_Exception [ 401 ] : Error refreshing the OAuth2 token, message : '{"error" : "unauthorized_client", "error_description" : "Client ou périmètre non autorisé dans la requête." }'

0 votes

Je vous suggère de continuer. Nous l'utilisons toujours pour récupérer les données en temps réel de GA toutes les quelques minutes, tout en utilisant bash, pas moins !

0voto

Jonathan_W Points 73

J'ai réussi à résoudre ce problème en m'assurant que le bouton

client = Google::APIClient.new(:application_name => 'X',:application_version => '1')

La variable "X" du nom de l'application était le nom de l'ACCOUNT sur le tableau de bord de GA, et non le nom de la PROPRIÉTÉ, qui dans mon cas était l'URL réelle du site auquel je voulais accéder.

Confusion, mais heureusement corrigée (sans l'aide de Google !).

0 votes

J'essaie de trouver ce "X". Pouvez-vous poster une capture d'écran ?

-2voto

bldoron Points 683

L'utilisateur pour lequel vous essayez d'utiliser l'API n'a pas activé son service GA.
Le simple fait d'avoir un compte Google ne suffit pas .

...Cependant, le simple fait d'avoir un compte Google ne vous donne pas automatiquement l'accès à Analytics. Vous devez d'abord vous inscrire à Google Analytics. processus simple et unique...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X