7
votes

Google-API-PHP-Client: fichier JSON secret de client non valide

semble que la dernière version du client Google-API-php pour PHP ne fonctionne pas avec les docs @ https://developers.google.com/drive/web/examples/php

En regardant le code SRC, je vois que c'est la recherche de clés dans le JSON téléchargé que la méthode SETUTUHCONFIGFILE () ne peut pas trouver: client_secret, installé, Web, redirect_uris (autres?) ne sont pas présents dans le JSON téléchargé . Seulement privé_key_id, privé_key, client_email, client_id et type sont présents.

Le code et les documents semblent vraiment désorganisés et hors de synchronisation ... ne serait pas le premier pour Google. Quelqu'un a-t-il obtenu OAuth travaillant récemment en utilisant cette bibliothèque?


2 commentaires

Des mises à jour à ce sujet? Avoir le même problème ici.


@Nebezbriefkani j'ai eu le même problème. Dans mon cas, le fichier client_secret.json était par défaut défini avec lecture seule sur mac. J'ai fait chmod 777 ( a donné des autorisations d'écriture ) dans ce fichier, qui a fixé le problème.


4 Réponses :


7
votes

Il y a une différence entre un et A "APLLICATION web" pour passer des appels à l'API. Lorsque vous avez créé un "compte de service", vous obtiendrez le fichier décrit ci-dessus, un fichier JSON avec privé_key , client_email , client_id etc.

Lorsque vous créez une application Web, vous recevrez un client_id , client_secret , redirect_uri etc.

Je suggérerais de lire ces pages pour choisir la clé et la connexion dont vous avez besoin (sur les deux pages que vous trouverez des exemples pour l'intégrer dans PHP):

Vous pouvez utiliser la bibliothèque cliente Google APIS pour PHP pour créer un Web. Applications de serveur utilisant l'autorisation OAuth 2.0 pour accéder à Google Apis. OAuth 2.0 permet aux utilisateurs de partager des données spécifiques avec un application tout en gardant leurs noms d'utilisateur, mots de passe et autres Information privée. Par exemple, une application Web peut utiliser OAuth 2.0 Pour obtenir la permission des utilisateurs pour stocker des fichiers dans leurs disques de Google.

https://developers.google.com/api- Client-Bibliothèque / PHP / Auth / Web-App

Typiquement, une application utilise un compte de service lorsque l'application Utilise Google API pour travailler avec ses propres données plutôt que sur les données d'un utilisateur. Par exemple, une application qui utilise Google Cloud DataStore pour les données La persistance utiliserait un compte de service pour authentifier ses appels à L'API de Datastore de Google Cloud.

https://developers.google.com/api- Client-Bibliothèque / PHP / Auth / Service-Comptes


0 commentaires

0
votes

Je comprends votre risque, vous avez un problème avec Google API. Dans Google API Console, il existe 3 types de fichiers JSON, l'un est Web, deuxième est le service et le dernier est installé. Le choix que vous avez beaucoup besoin d'utiliser est celui installé car vous obtiendrez une clé, installée ou autre ..


0 commentaires

2
votes

Il y a une nouvelle fonction dans la bibliothèque PHP qui se rapproche de cela, mais n'autorise pas la définition SUB, donc toujours une autorisation échoue. Donc, d'abord mettre à jour la fonction de bibliothèque PHP loadServiceAccountjson code> dans src / google / client.php à ceci: xxx pré>

puis, ajoutez une valeur sous les données de votre serveur. Auth Json File: P>

$service = new Google_Service_Directory($client);
$optParams = array(
        'domain' => 'google.domain.com',
        'orderBy' => 'email',
        'viewType' => 'domain_public',
        'query' => "givenName:'Joe' familyName:'Schmoe Jr'"
);
$results = $service->users->listUsers($optParams);
$users = $results->getUsers();

print_r($users);


0 commentaires

0
votes

1) "Credentials_Path" doit pointer vers un fichier inexistant (dans un chemin d'écriture)

2) "client_secret_path" doit pointer sur le fichier de précisentiel de "CLIENT OUTUH 2.0", créé et téléchargé à partir de la console Google dans la section Critique de l'API.

Pour un script PHP côté serveur, comme le vôtre, faites attention lorsque vous créez l'enregistrement «CLIENT ID OUTUH 2.0»: sur l'assistant de création, vous devez sélectionner «Autre» type d'application et non le type «Web».

considère


1 commentaires

Je suis sûr que je vais le trouver moi-même en dépensant des âges à la recherche de cela, mais où serait-ce?