2016-11-03 6 views
0

こんにちは、私はグーグル/ apiclientを使用しようとしている問題メッセージでキャッチされない例外 'InvalidArgumentException' '無効なJSONにトークン'

Fatal error: Uncaught exception 'InvalidArgumentException' with message 'invalid json token' in C:\xampp\htdocs\Google\vendor\google\apiclient\src\Google\Client.php:422 Stack trace: #0 C:\xampp\htdocs\Google\app\class\google_auth.php(43): Google_Client->setAccessToken(NULL) #1 C:\xampp\htdocs\Google\app\class\google_auth.php(34): GoogleAuth->setToken(NULL) #2 C:\xampp\htdocs\Google\index.php(10): GoogleAuth->checkRedirectCode() #3 {main} thrown in C:\xampp\htdocs\Google\vendor\google\apiclient\src\Google\Client.php on line 422

私のインデックスがあります。

<?php 
    require_once('app/ini.php'); 
    require_once('vendor/autoload.php'); 
    require_once('app/class/google_auth.php'); 


    $googleClient = new Google_Client(); 
    $auth = new GoogleAuth($googleClient); 

    if ($auth->checkRedirectCode()) { 
     header("Location: index.php"); 
    } 

?> 

<!DOCTYPE html> 
<html> 
<head> 
    <title></title> 
</head> 
<body> 

    <?php if (!$auth->isLoggedIn()): var_dump($auth->isLoggedIn()); //Verificar Inicio de Sesion ?> 
     <a href="<?php echo $auth->getAuthUrl(); ?>">Inicie Sesion con Google</a> 
    <?php else: //Si no ha iniciado Sesion ?> 
     Bienvenido.. <a href="logout.php">Cerrar Sesion</a> 
    <?php endif; ?> 

</body> 
</html> 

クラスGoogleAuth:

<?php 

    class GoogleAuth{//Clase para la autenticacion del usuario google 

     protected $client;//Variable de cliente 

     public function __construct(Google_Client $googleClient = null){ 
      $this->client = $googleClient; 

      if ($this->client) { 

       $this->client->setClientId('474251646530-0tiho0cbf4d1ti864ck5d1nk8rh5pcb6.apps.googleusercontent.com');//Usuario Auth Google 
       $this->client->setClientSecret(' 
        bMuLusxZW6ohlI3vnvPg2zRz');//Clave Auth Google 
       $this->client->setRedirectUri('http://localhost/Google/index.php'); 
       $this->client->setScopes('email'); 

      } 
     } 

     public function isLoggedIn(){//Metodo que devuelve el estatus de la Sesion con Google (true o false) 
      return isset($_SESSION['access_token']); 

     } 

     public function getAuthUrl(){//Funcion que devuelve el enlace requerido para iniciar sesion 
      return $this->client->createAuthUrl(); 

     } 

     public function checkRedirectCode(){ 
      if (isset($_GET['code'])) { 
       $this->client->authenticate($_GET['code']); 
       $this->setToken($this->client->getAccessToken()); 

       return true; 
      } 
      return false; 
     } 

     public function setToken($token){ 
      $_SESSION['access_token']=$token; 
      $this->client->setAccessToken($token); 
     } 

     public function logout(){ 
      unset($_SESSION['access_token']); 
     } 

    } 

?> 

getAccessToken()NULLです。

答えて

0

私にはそれがコピー/ペースト誤りでない限り、問題はここに

$this->client->setClientSecret(' 
       bMuLusxZW6ohlI3vnvPg2zRz');//Clave Auth Google 

かもしれないようです。

$this->client->setClientSecret('bMuLusxZW6ohlI3vnvPg2zRz');//Clave Auth Google 

これは私が最初に修正することです。

+0

rigth jajaありがとう –

関連する問題