API de Google Analytics: “l'Utilisateur ne dispose pas des autorisations suffisantes pour ce compte.”
Je suis en train d'écrire une application Ruby qui accède à l'API de Google Analytics pour tirer vers le bas une certaine expérience de l'information.
L'application se connecte et s'authentifie à l'aide d'un Service de Google Compte par l'intermédiaire de la fonction suivante:
def connect
...
@@client = Google::APIClient.new(:application_name => 'My Service App',
:application_version => '1.0.0')
key_file = Rails.root.join('config', 'privatekey.p12').to_s
key_secret = 'somesecret'
key = Google::APIClient::PKCS12.load_key(key_file, key_secret)
asserter = Google::APIClient::JWTAsserter.new(
SECRETS[:google_service_account_email],
['https://www.googleapis.com/auth/yt-analytics.readonly',
'https://www.googleapis.com/auth/analytics.readonly'
],
key
)
@@client.authorization = asserter.authorize()
...
end
...qui authentifie et découvre les deux Api sans problème.
À l'aide du client à l'encontre de YouTube Analytics API travaille sans problème. En utilisant le même compte pour accéder à google Analytics API via...
response = @@client.execute({
# 'analytics is the API object retrieved via discover_api()
:api_method => analytics.management.experiments.list,
:parameters => {
'accountId' => 'AAAAAAAA',
'profileId' => 'PPPPPPPP',
'webPropertyId' => 'UA-WWWWWWWW-#'
}
})
Résultats dans une réponse d'erreur 403:
{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this account."}
En ce qui concerne l'autorisation, j'ai vérifié le compte [email protected]:
- Dispose de toutes les autorisations pour le Google Analytics de l'interface web. Je me suis connecté à l'aide de la [email protected] compte et a été en mesure d'afficher les mêmes Expériences que j'ai tenté de liste.
- A permis l'analyse de l'API. Au sein de l'API Console, je l'ai confirmé dans la section Services que l' Analytics API élément est passer à la SUITE. (Comme YouTube Analytics est).
- Je suis à l'aide de la AccountID, ProfileID, et WebPropertyID valeurs. Copié directement à partir du web Google Analytics interface.
Étant donné que le compte de service peut accéder à au moins une API (YouTube Analytics), et le compte associé ([email protected]) peut accéder à l'interface web Analytics, il semble y avoir quelque chose de mal avec le compte de service de l'accès à l'Analytics API en particulier.
Des idées?
Sujets similaires:
- “Pas des autorisations suffisantes” API de google analytics compte de service (REMARQUE: Cette erreur est légèrement différente de la mienne)
- Analytics blog, vérifiez la section des commentaires pour 'autorisations'
- avez-vous de donner les autorisations pour le compte de service sur votre GA profil? Admin > Affichage > Gestion des Utilisateurs > "Ajouter des autorisations pour:"
- L'[email protected] compte dispose de toutes les autorisations. Cependant, votre commentaire ne me demander d'ajouter le service de messagerie de compte ainsi (c'est à dire [email protected]), qui semble résoudre le problème. Si vous voulez mettre cela sous la forme d'une réponse, je serais heureux de vous donner de crédit.
- double possible de Analytics API Google Erreur 403: "l'Utilisateur n'a pas de Compte Google Analytics"
- Celui-ci a un message d'erreur différent, est écrit en Ruby, et est déjà 6 mois... je ne pense pas que ce marquage comme un "duplicata" va aider quelqu'un à ce point. De Plus, même s'il s'agissait d'un doublon, en laissant un ouvert permettra à plus de gens de Google afin d'atteindre leur réponse (via le RÉFÉRENCEMENT.)
- Ok, la solution était plus ou moins la même dans les deux cas, mais en voyant cette question m'a fait abandonner alors que la réponse à l'autre question a un détail supplémentaire qui en fin de compte il a réglé pour moi. Donc je viens de comprendre que l'existence de cette question en fait, il est difficile pour moi de trouver la réponse.
- Une dernière précision: j'ai effectivement eu à la fois des messages d'erreur en même temps, mais peut-être que ce n'est pas le cas pour tout le monde
- Je suis en désaccord: ma question a beaucoup plus de détails et des liens vers d'autres ressources, tandis que l'autre ne répondre qu'a "j'ai suivi les instructions de Google." Malgré la réponse étant les mêmes, les questions sont différentes; les utilisateurs ne trouverez pas de la même façon, ce qui fournit une couverture supplémentaire.
- Pas de problèmes, j'ai mis à jour la réponse avec les informations supplémentaires
- J'ai eu ce même problème, la question a été j'ai été en utilisant le profileID pour l'ensemble de votre compte. Je suis ensuite allé dans mon compte sur le web, et il a tiré le nom réel du site dans l'URL. C'est l'ID vers la fin, par exemple en temps réel/rt-vue d'ensemble/XXXXXXXXXXXXXXpYOURIDHERE/. Une autre méthode consiste à utiliser le code", ga.Service.De la gestion.Les profils.Liste("~all", "~all").Execute();" à la liste de tous les id de votre compte.
Vous devez vous connecter pour publier un commentaire.
Assurez-vous de donner le compte de service de messagerie (quelque chose comme [email protected] les autorisations de lecture/écriture à partir de votre GA vue.
Admin > Affichage > Gestion des Utilisateurs > "Ajouter des autorisations pour:"
Choisir la bonne id!
Dans mon cas, j'ai été en utilisant la droite d'informations d'identification (id de compte, compte de secret -> authorization_code -> access_token) ET eu l'e-mail autorisations mis en place le droit, mais j'ai été en utilisant le numéro de compte sur le Admin > paramètres du Compte page et simplement l'ajout de ga: à l'avant.
L'id que vous avez réellement besoin est la table d'identité! (ou c'est la seule qui a fonctionné pour moi au moins depuis la plupart des gens ici sont en mentionnant le numéro de compte, qui n'a pas fonctionné pour moi.). Vous pouvez la trouver ici: https://ga-dev-tools.appspot.com/account-explorer/
Et puis vous pouvez interroger comme
J'ai trouvé cette API d'être mal documenté dans l'ensemble et de l'INTERFACE utilisateur n'est pas clair. Mais peut-être que c'est juste moi.
Si vous voyez toujours ce message après que vous avez ajouté votre développeur e-mail à l'analytique de l'utilisateur.
Vous devrez peut-être ajouter portée à l'objet, avant que de nouvelles Google_Service_Analytics($client);
$client->setScopes("https://www.googleapis.com/auth/plus.login");
J'ai passé toute la journée à essayer de résoudre ce!
Assurez-vous d'entrer le bon table_id
J'ai également eu à aller le développeur de la console et activer l'API pour le faire fonctionner. Aller à le développeur de la console et sélectionnez votre projet et de permettre à l'API(s) que vous souhaitez utiliser.
Même après l'ajout de l'e-mail au niveau de votre compte google analytics, j'ai encore eu le même problème de permission, mais la suggestion suivante aidé, mais n'a pas le résoudre:
$client->setScopes("https://www.googleapis.com/auth/plus.login");
Qui n'a pas fonctionné pour moi, mais ce n':
$client->setScopes("https://www.googleapis.com/auth/analytics");
https://est maintenant nécessaire de s'authentifier.
Si vous êtes nouveau juste pour vous laisser savoir à l'Étape 3 de la procédure requise
Si quelqu'un a plus de vue qu'il doit utiliser le point de vue de l'ID.