Il mio obiettivo finale è inviare e-mail a me stesso tramite l'API Gmail di Google.Numero errato di segmenti in token (OAuth Google Api)
E qui è il mio problema.
quando sto ottenendo il mio token di accesso di un errore si apre
Fatal error: Uncaught exception 'Google_Auth_Exception' with message 'Wrong number of segments in token: '
ho letto qui Cloud endpoints oauth2 error che "Questo NON significa che il token non era valido", ma sto ottenendo un errore fatale che interrompendo il mio script.
mio token di accesso si presenta così 4/MqiIIl5K4S3D4iiieHshQt5D4M79oo07SbhMn22oe2o.cswa8t9ZuDAfJvIeHux6iLYXpNQmlAI
Se mi aggiorna la pagina con questo token che avrei avuto un altro errore, che è
'Error fetching OAuth2 access token, message: 'invalid_grant: Invalid code.'
Ecco il mio codice
<?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 è il mio dominio locale e non vedo alcun problema con quella
sto usando libreria originale di Google https://github.com/google/google-api-php-client
Ho gli stessi problemi. Il token non ha tutti i dati. L'hai risolto? –