2017-05-17 1 views
0

J'ai suivi ce guide parfaitement https://developers.google.com/api-client-library/php/auth/service-accounts dans le but d'obtenir un peu d'information de google, mais je continue à obtenir un 403 Insufficient Permission. J'ai créé un compte de service, et il m'a donné un petit fichier json avec une clé privée, un identifiant de projet, un email client et un identifiant client, et plein d'autres trucs que je ne peux pas partager ici. J'ai ensuite délégué l'autorité de domaine au compte de service aux étendues d'API spéciifc. https://www.googleapis.com/auth/analytics.readonly Je l'ai fait via la console d'administration du domaine Google Apps.Utilisation de Google OAuth 2.0 pour les applications de serveur à serveur PHP

Je me suis alors préparé à faire un appel api autorisé avec ce petit peu de php. Je lance ce fichier php dans la console, et je continue d'obtenir cette erreur.

Fatal error: Uncaught exception 'Google_Service_Exception' with message '{ 
"error": { 
    "errors": [ 
    { 
    "domain": "global", 
    "reason": "insufficientPermissions", 
    "message": "Insufficient Permission" 
    } 
    ], 
    "code": 403, 
    "message": "Insufficient Permission" 
} 
} 

Je suis perdu. Toute mon équipe est perdue. Nous avons traversé cela plusieurs fois. Comment pouvons-nous mettre en place une communication de serveur à serveur pour récupérer nos données api de reporting google analytics?

+1

Je ne vois aucun jeton d'authentification. Avez-vous acquis vos jetons d'accès et d'actualisation? Ils vous sont envoyés après le consentement de l'utilisateur. – Arbels

+0

@Arbels L'application appelle les API Google au nom du compte de service, de sorte que les utilisateurs ne sont pas directement impliqués. L'étape à laquelle cet exemple o-auth à 2 pattes échoue est lorsque mon application se prépare à effectuer un appel d'API autorisé. J'utilise les informations d'identification du compte de service pour demander un jeton d'accès à partir du serveur d'authentification OAuth 2.0, mais j'obtiens toujours des erreurs d'autorisation. Les informations d'identification sont stockées dans une variable d'environnement 'putenv ('GOOGLE_APPLICATION_CREDENTIALS ...');', qui sont utilisées dans $ client-> useApplicationDefaultCredentials(); '. –

+0

Oh, je faisais référence à la [application côté serveur] la plus courante (https://developers.google.com/identity/protocols/OAuth2WebServer). Êtes-vous sûr d'être qualifié pour utiliser l'approche [informations d'identification par défaut de l'application] (https://developers.google.com/identity/protocols/application-default-credentials)? – Arbels

Répondre