问题
I'm trying to implement Google's login API via the instructions here, but for some reason, when I try to run it, I always get:
Fatal error: Class 'Google_Config' not found in /home/.../Google/Client.php on line 76
I'm quite sure I linked to Client.php correctly - I don't think it's a problem within my own code. Does anyone know what might be happening here? Thanks!
回答1:
This error means that you didn't use Composer, to install the client. Without Composer, in your script you should
set_include_path(get_include_path() . PATH_SEPARATOR . dirname($_SERVER['SCRIPT_FILENAME']) . 'vendor/google-api-php-client/src');
require_once '/path/to/autoload.php';
require_once '/path/to/Client.php';
Without the autoload.php, no class will be found. In Client.php the code before the Class definition tries to load autoload.php. But you have already found the Client.php, by giving the full path to it. So no loading of autoload.php happens there.
As you say, your problem solved when you reinstalled the API. I suppose you used Composer the second time.
Clarification: The above note does NOT mean to skip proper client installation, according to google documentation. Applies for "google/apiclient": "1.0.*@beta"
回答2:
Are you sure you downloaded whole release not only master branch from github? You should have /vendors and /src directories - then require /src/autoload.php
回答3:
google's autoloader doesn't work for me, it's either because of an old version of PHP or a conflict with a competing autoloader, I don't know.
I have even tried manually including googles auto loader (which should be redundant as src/Google/Client.php
already require_once
's the autoload.php
:
require_once 'google-api-php-client/autoload.php'
require_once 'google-api-php-client/src/Google/Client.php'
Google_Config
is never found...
ultimatly the only solution is the solution as described in https://stackoverflow.com/a/26985116/3338098 i.e.
set_include_path(get_include_path() . PATH_SEPARATOR . '/path/to/google-api-php-client/src');
require_once 'Google/Client.php'
回答4:
I fought with this for a while. The reason was actually quite simple:
I had ignored in git "config.php" which ignored this file and that's why it was not in my production environment.
回答5:
I could solve the problem by following steps
> cd "youfolder"
> composer install
回答6:
Instead of keeping vendor folder in root folder, keep it in google-api-php-client-master folder and use the following line to include it in your project
require_once DIR.'/google-api-php-client-master/vendor/autoload.php';
来源:https://stackoverflow.com/questions/26551826/class-google-config-not-found