2017-03-22 3 views
0

Ich versuche, Benutzerdaten von Google Plus mit PHP abzurufen. ich unter Anleitung mit https://www.youtube.com/watch?v=-65R420rIUAGoogle_Auth_Exception: Fehler beim Aktualisieren des OAuth2-Tokens

Situation: Benutzeranmeldung in meine App Android mit Google Plus-Taste i holen den Zugriffstoken mit googleSignInResult.googleSignInAccount.getIdToken()

ich dieses Token auf meinen Server senden, die PHP läuft holen Benutzer Daten google php-Client (wie im Video beschrieben) unter meinem Code ist

try{ 
      $gClient = new Google_Client(); 
      $gClient->setApplicationName('pixyfi'); 
      $gClient->setClientId($config['google']['appid']); 
      $gClient->setClientSecret($config['google']['secret']); 
      $token = json_encode(array("access_token"=>$lptoken,"refresh_token"=>$lptoken,"token_type"=>"Bearer","expires_in"=>3600,"id_token"=>$lptoken,"created"=>1320790426)); 

      $gClient->setAccessToken($token); 
      $gClient->addScope(Google_Service_Plus::PLUS_ME); 
      $plus = new Google_Service_Plus($gClient); 

      $gpUserProfile = $plus->people->get('me'); 
      echo "User Fetched as:".$gpUserProfile['id']; 
     } 
     catch(Google_Auth_Exception $x){ 
      echo "Error:".$x; 
     } 

Aber ich Störung erhalte: Fehler: Google_Auth_Exception: Fehler beim Aktualisieren des OAuth2-Tokens, Meldung: "{ " error ":" invalid_client " }" unter/var/www/html/api/auth/vendor/google/apiclient/src/Google/Auth/OAuth2.php: 364

Könnten Sie bitte lassen Sie mich wissen, welchen Fehler ich hier mache?

+0

welche Art von Feld in Sie speichern Ihr Token tun? (ist es groß genug, um den gesamten Zugriff zu halten und Token zu aktualisieren) – Dimi

+0

Ich bin mir nicht wirklich sicher über den Unterschied zwischen refresh_token und access_token. Von https://github.com/google/google-api-php-client/issues/429#issuecomment-66470720 sieht es so aus, als wären beide gleich. und ja komplette Token wird von Android auf PHP-Server –

Antwort

0

das ist etwas von meinem Code, der Token Sache behandelt. Implementieren Sie diese Logik und lassen Sie mich wissen, wenn Sie immer noch Fehler erhalten.

Reihe $ ist abgerufen aus der Datenbank und enthält Token Informationen

$client->setAccessToken($row['token']); 
     if(time()>$row['created']+$row['expires_in']) 
     {  
       $client->refreshToken($row['refresh_token']); 
       $token=$client->getAccessToken(); 
       DB::Query("-----UPDATE DB TOKEN INFO-------"); 
       $client->setAccessToken($token); 

     } 
+0

gesendet wird, gibt immer noch denselben Fehler –

Verwandte Themen