Так я определить все параметры в верхней части моей страницы:токен обновления не работает в Google Analytics API
<?php
session_start();
$client = new Google_Client();
$client->setAuthConfigFile('client_secrets.json');
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
$client->setAccessToken($_SESSION['access_token']);
$client->getAccessToken();
} else {
$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/oauth2callback.php';
header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
}
//get the access token
$myToken = json_decode($client->getAccessToken());
if ($client->getAuth()->isAccessTokenExpired()) {
$token = $myToken->refresh_token;
echo 'token expired';
} else {
$token = $myToken->access_token;
echo 'token not yet expired';
}
?>
вниз на дне я получил Java скрипт:
<script>
gapi.analytics.ready(function() {
var CLIENT_ID = 'my-client-id-goes-here';
gapi.analytics.auth.authorize({
'serverAuth': {
'access_token': '<?php echo $token; ?>'
}
});
Это работает до тех пор, пока токен доступа не истечет, что составляет 60 минут. После этого отчеты больше не показываются. Что я сделал неправильно и почему он не использует токен обновления?
Спасибо, это имеет смысл для меня. Что я должен поставить вместо «access_token» здесь :? gapi.auth.setToken ({ access_token: «что должно быть здесь»? }); Также в качестве альтернативного решения есть так или иначе, чтобы установить истечение срока действия токена, например, в течение 30 лет ..? –
Это то же самое, что у вас выше в вашем коде: '' Php echo $ token; ?> ''. Кроме того, чтобы ответить на второй вопрос, вы не можете изменить период истечения срока действия. По соображениям безопасности установлено 1 час. –
ОК, это не сработало. Я поставил ваш код над этой строкой: gapi.analytics.auth.authorize ({ 'serverAuth': { 'access_token': ' Php echo $ token;?> ' } и ждал час, он, похоже, не установил новый токен. –