Mauvais nombre de segments de jeton (OAuth, l'Api Google)
Mon objectif final est d'envoyer un courriel à moi-même via Google Gmail API.
Et voici mon problème.
Quand je reçois mon jeton d'accès une erreur apparaît
Fatal error: Uncaught exception 'Google_Auth_Exception' with message 'Wrong number of segments in token: '
J'ai lu ici Nuage de points de terminaison oauth2 erreur que "Cela NE signifie PAS que votre jeton n'était pas valide", mais j'obtiens une erreur fatale que de les interrompre mon script.
Mon jeton d'accès ressemble à ceci 4/MqiIIl5K4S3D4iiieHshQt5D4M79oo07sbhmn22oe2o.cswa8t9ZuDAfJvIeHux6iLYXpNQmlAI
Si j'ai actualiser la page avec cette marque que j'obtiendrais une autre erreur, qui est
'Error fetching OAuth2 access token, message: 'invalid_grant: Invalid code.'
Voici mon code
<?php
include_once "templates/base.php";
echo pageHeader("Simple API Access");
require_once realpath(dirname(__FILE__) . '/../autoload.php');
$client = new Google_Client();
$client_id = '114600397795-j5sn0gvsdrup0s8dcmsj49iojp3m9biu.apps.googleusercontent.com';
$client_secret = 'm3Dzankql_rs1OGICsA3Hbtc';
$redirect_uri = 'http://alupa.com/gmail/examples/simple-query.php';
$client->setClientId($client_id);
$client->setClientSecret($client_secret);
$client->setRedirectUri($redirect_uri);
$client->addScope("https://www.googleapis.com/auth/gmail.readonly");
$client->addScope("https://mail.google.com/");
$apiKey = "AIzaSyCWXxrTshKsotxEYNZZCXxdVXhLeku55cw";
$client->setDeveloperKey($apiKey);
if (isset($_GET['code'])) {
$client->authenticate($_GET['code']);
$_SESSION['access_token'] = $client->getAccessToken();
//$redirect = 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
//header('Location: ' . filter_var($redirect, FILTER_SANITIZE_URL));
}else{
$client->setApplicationName("Client_Gmail_Examples");
}
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
} else {
$authUrl = $client->createAuthUrl();
}
if ($client->getAccessToken()) {
$_SESSION['access_token'] = $client->getAccessToken();
$token_data = $client->verifyIdToken()->getAttributes();
}
?>
<div class="box">
<div class="request">
<?php
if (isset($authUrl)) {
echo "<a class='login' href='" . $authUrl . "'>Connect Me!</a>";
} else {
echo "<a class='logout' href='?logout'>Logout</a>";
}
?>
</div>
</div>
alupa.com est mon domaine local et je ne vois pas de problèmes avec
Je suis une utilisation originale de la bibliothèque de google https://github.com/google/google-api-php-client
OriginalL'auteur Randomius | 2014-12-04
Vous devez vous connecter pour publier un commentaire.
Changement:
:
OriginalL'auteur Tuan Truong Quang
Vous devez ajouter le champ d'application openid et puis, vous obtenez un id_token ainsi que le jeton d'accès. Vous pouvez ensuite utiliser l'id de jeton de $client->verifyIdToken
OriginalL'auteur 365SplendidSuns