web-dev-qa-db-fra.com

Compte de service "API insuffisantes" google analytics API

J'essaie de récupérer des données avec l'API Google Analytics via des comptes de service.

J'ai cherché sur stackoverflow comment faire et j'ai utilisé exactement le même code trouvé sur plusieurs messages, mais j'ai eu des problèmes pour le faire fonctionner.

Sources:

Applications de service et API Google Analytics V3: authentification OAuth2 de serveur à serveur?

Applications de service et API Google Analytics V3: erreur 101 (net :: ERR_CONNECTION_RESET)

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

Voici ce que j'ai obtenu:

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);

lors de l'exécution, j'ai eu l'erreur suivante:

Erreur irrécupérable: exception non détectée "Google_ServiceException" avec le message "Erreur lors de l'appel à 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) L'utilisateur ne dispose pas des autorisations suffisantes pour ce profil. ' dans /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php:66 Trace de pile: # 0/Applications/XAMPP/xamppfiles/htdocs/insights/application/bibliothèques/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 (Object) (Google_HttpRequest)) # 2 /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/contrib/Google_AnalyticsService.php(383): Google_ServiceResource -> __ call ('get', Array) # 3/Applications/XAMPP xamppfiles/htdocs/insights/application/bibliothèques/Google.php (46): Google_DataGaServiceResource-> get ('g dans /Applications/XAMPP/xamppfiles/htdocs/insights/application/libraries/googleAPI/io/Google_REST.php sur la ligne 66

Parce que j'utilise exactement le même code que les exemples de travail, je pense que cela pourrait être un problème avec les paramètres de l'API ou du compte de service?

Voici l'utilisateur que j'ai ajouté au compte analytique: Analytics users

et voici les comptes d'accès api: api access

Quelqu'un sait-il ce que je fais mal?

31
Kozmk12

J'obtenais exactement la même erreur et cela l'a résolu pour moi:

J'utilisais l'ID de compte au lieu de l'ID de vue. Le passage à l'ID de vue l'a corrigé - c'est toujours l '"ID de vue" et non l'ID de compte ou de propriété (qui ressemble à "UA-xxx"). L'ID d'affichage est pour une propriété Web spécifique et peut être trouvé dans Admin-> Affichage (3e colonne) -> Paramètres d'affichage. C'est un entier sans tirets.

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

70
jarace87

J'ai eu le même problème aujourd'hui, le profileId est difficile à trouver, vous pouvez l'avoir dans chaque URL de l'analyse, disons https://www.google.com/analytics/web/#management/Settings/aXXXXXXwYYYYYYYpZZZZZZZZ/ c'est la partie ZZZZZZZ

10
jrenouard

Même problème. Résolu en utilisant l'ID VIEW au lieu de l'ID de compte (UA-XXXXX-1).

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

ET

Assurez-vous d'ajouter le compte de service à votre liste d'utilisateurs dans la console Google Analytics. Le configurer simplement dans la section Informations d'identification, API et autorisations de la console du développeur ne lui accordera toujours pas l'accès à vos analyses.

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

J'ai la même erreur, mais après un certain temps, j'ai reconnu que j'utilisais ce script avec mon google chrome (ma propre adresse e-mail), mais l'API Analytics s'exécute sur l'e-mail de l'entreprise. La solution pourrait donc être de modifier les paramètres de votre google chrome. Il suffit de vous déconnecter du compte gmail dans votre google chrome (paramètres) et de le tester à nouveau.

4
Havrin

Utilisez Afficher l'ID et non l'ID du compte, dans l'onglet Admin, "Afficher les paramètres" "Afficher l'ID".

4
Pablo Martinez

M'a beaucoup aidé après 2 semaines à essayer de trouver une solution:

Console Analytics -> Admin -> Afficher (profil) -> Afficher les paramètres -> Afficher l'ID

3
Leumas Naypoka

Sur une autre application, j'obtenais "Autorisations insuffisantes" et j'ai découvert que mon fichier .htaccess comportait certaines restrictions de fichier à l'origine du problème.

1
user1695595

J'ai eu le même problème en utilisant la bibliothèque .net, après quelques bricolages, j'ai trouvé la solution:

Accédez à votre site de gestion Google Analytics et ajoutez le compte de service en tant qu'utilisateur et accordez à ce compte les droits nécessaires

1
Lee Gary

Veuillez créer un segment partagé ... Cela fonctionnera

http://www.periscopix.co.uk/blog/google-analytics-new-feature-shared-segments/

0
Vishal Bedre

Eu le problème .. il s'avère que l'ID de compte est caché dans l'URL de votre compte d'analyse!

https://developers.google.com/analytics/devguides/reporting/core/v3/#user_reports

L'URL ressemble généralement à ceci:

https://www.google.com/analytics/web/?hl=en#management/Settings/a51343283w843304 p87396224 /%3Fm.page%3DAccountSettings/

L'ID que nous recherchons suit la lettre p.

Dans l'exemple ci-dessus, l'ID qui fonctionnera est: 87396224

0
hellojebus

vous utilisez peut-être un autre ID client: Client secret: pour obtenir les détails d'un autre identifiant de profil

0
Ravi Kumar