Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Class "Google_Config" not found

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!

like image 721
mt_xing Avatar asked Oct 24 '14 16:10

mt_xing


3 Answers

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"

like image 157
Greg Kelesidis Avatar answered Oct 23 '22 20:10

Greg Kelesidis


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

like image 28
Artur Czyżewski Avatar answered Oct 23 '22 20:10

Artur Czyżewski


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'
like image 1
user3338098 Avatar answered Oct 23 '22 22:10

user3338098