google-api-php-client: client non Valide secret du fichier JSON
Semble que la dernière version de la google-api-php-client pour les de PHP n'est pas en ligne avec les docs @ https://developers.google.com/drive/web/examples/php
À la recherche à la src code je vois qu'il est à la recherche de clés dans le téléchargé JSON que le setAuthConfigFile() la méthode ne peut pas trouver: client_secret, installé, web, redirect_uris (d'autres?) ne sont pas présents dans le téléchargé JSON. Seulement private_key_id, private_key, client_email, client_id, et le type sont présents.
Le code et docs semblent vraiment désorganisé et de synchronisation... ne serait pas la première pour Google. Quelqu'un a eu OAuth de travail récemment à l'aide de cette bibliothèque?
- Toutes les mises à jour sur ce point? Ayant le même problème ici.
- J'ai eu le même problème. Dans mon cas, le
client_secret.json
fichier a été configurés par défaut avecread only
sur mac. Je n'aichmod 777
(a donné des autorisations d'écriture) de ce fichier, qui a réglé le problème.
Vous devez vous connecter pour publier un commentaire.
Il y a une différence entre un "compte de service" et un "web apllication" de faire des appels à l'API. Lorsque vous avez créé un "compte de service", vous obtiendrez le fichier est décrit ci-dessus, un fichier JSON avec
private_key
,client_email
,client_id
etc.Lorsque vous créez une application web, il vous sera donné un
client_id
,client_secret
,redirect_uri
etc.Je suggère la lecture de ces pages pour choisir la clé et de connexion dont vous avez besoin (sur deux pages, vous trouverez des exemples de l'intégrer en PHP):
https://developers.google.com/api-client-library/php/auth/web-app
https://developers.google.com/api-client-library/php/auth/service-accounts
Il y a une nouvelle fonction dans la bibliothèque php qui est proche de cela, mais n'autorise pas le réglage de sous, donc toujours en donne l'autorisation échoue. Donc, la première mise à jour de la bibliothèque php fonction
loadServiceAccountJson
dans src/Google/Client.php pour cela:Ensuite, ajoutez une valeur de sous pour les données de votre serveur d'auth fichier json:
Maintenant, obtenir une autorisation:
Où serverauth.json est le JSON fichier téléchargé à partir du compte de service que vous souhaitez utiliser, et ajout de la sous ligne.
Et enfin, créer une instance de Répertoire et de l'interroger:
Je comprends votre risque, Vous avez un problème avec l'API de Google. En l'API Google console il y a 3 types de Fichier json, l'un est Web , le second est le Service et le dernier est Installé. le choix que vous avez beaucoup ont besoin à utiliser est celle Installés parce que Vous obtiendrez la Clé, Installé ou autres..
1) "CREDENTIALS_PATH" doit pointer vers un fichier inexistant (dans un writeble chemin)
2) "CLIENT_SECRET_PATH" doit pointer vers le "ID client OAuth 2.0" fichier des informations d'identification, créé et téléchargé à partir du Google Console dans l'Api section informations d'Identification.
Pour un script php côté serveur, comme la vôtre, faites attention lors de la création de la "ID client OAuth 2.0" enregistrement sur l'assistant de création, vous devez sélectionner "autre" type de demande et pas le type "web".
Ce qui concerne