Je suis en train de mettre à jour le système de connexion de mon site Web de LightOpenID vers Oauth 2.0 de Google.
Lorsque j'exige Client.php et Service/Oauth2.php, un message d'erreur s'affiche.
Erreur fatale: La classe 'Google_Service' est introuvable dans /home/myname/repos/website_current/lib/google-api-php-client/src/Google/Service/Oauth2.php à la ligne 32.
Le code que j'utilise (de mon fichier login.php) ressemble à ceci
require_once(dirname($_SERVER['DOCUMENT_ROOT']).'/lib/autoload.php');
require('Google/Client.php');
require('Google/Service/Oauth2.php');
echo "exit";
exit();
J'ai ajouté le chemin d'inclusion dans le fichier PHP.ini (dans /etc/php5/Apache2/php.ini) en tant que
include_path = ".:/usr/local/lib/php:/home/myname/repos/website_current/lib/google-api-php-client/src"
Il semble donc que mon fichier Oauth2.php ne peut pas voir l’un des autres, y compris la classe "Google_Service" qui est un dossier dans "Service.php".
Ma structure de dossier ressemble à ceci:
lib/
... autoload.php
... functions.php
... google-api-php-client/
... src/
... Google/ (etc etc)
public_html/
... login/
...login.php
Je ne sais pas pourquoi cela se produit. Le chemin d'inclusion doit être vu et apparaît comme un chemin inclus à l'aide de phpinfo (); Quelqu'un peut-il me donner un aperçu s'il vous plaît?
Assurez-vous d’ajouter la ligneAVANTà toute autre ligne "require_once" de Google.
require_once 'google-api-php-client/autoload.php';
Je l'ai eu en dernier et ça m'a fait me gratter la tête pendant 10 bonnes minutes.
Selon les instructions sur github :
require_once 'google-api-php-client/autoload.php'; // or wherever autoload.php is located
Dans votre cas, il semble que l'URL ci-dessus inclue devrait bien fonctionner.
À partir de novembre 2016
require_once ... 'vendor/autoload.php';
La nouvelle façon de procéder (vers le début de 2016) est la suivante:
require_once("Google/autoload.php");
(En supposant que vous ayez déjà défini votre chemin d’inclusion sur/chemin/vers/google-api-client-php/src)
Vers cette version https://github.com/google/google-api-php-client c'est une solution envisageable
set_include_path("google-api-php-client/src/" . PATH_SEPARATOR . get_include_path());
//.....
require_once 'Google/Service.php';
//.....
Tout en travaillant avec l'intégration de Google API
Erreur fatale: Classe 'abc' introuvable
une erreur survient lorsqu'il existe vraiment quelque chose de différent entre la bibliothèque que vous avez dans composer.json
ci-dessus et la bibliothèque en cours de chargement automatique.
eu le même problème vient de changer dans mon composer.json
{"require": {"google/apiclient": "1.0.*@beta"}}
à
{"require": {"google/apiclient": "2.0.*"}}
puis exécutez php composer.phar update
(assurez-vous de donner le bon chemin pour le fichier .phar
)
Après avoir suivi ce que Durandal avait posté, je l'ai essayé, mais le nouveau chemin pour moi est le suivant:
require_once 'google-api-php-client/src/Google/autoload.php';
Une fois que j'ai fait cela a changé cela a fonctionné. Merci pour l'aide.
Désormais, il est obsolète et déplacé vers le sous-répertoire Google. Voici le nouveau chemin par défaut: google-api-php-client-master\src\Google\autoload.php