Google OAuth: no se puede obtener el token de actualización con el código de autorización

Estoy usando el cliente API de Google para Google Analytics con OAuth 2.0

Leí esto para obtener el token de actualización pero no aparece:https://developers.google.com/identity/protocols/OAuth2WebServer#offline

Solo obtengo esto en su lugar:

{
 "access_token": "ya29.twHFi4LsiF-AITwzCpupMmie-fljyTIzD9lG8y_OYUdEGKSDL7vD8LPKIqdzRwvoQAWd",
 "token_type": "Bearer",
 "expires_in": 3599,
 "id_token": "very long string"
}

Aquí está el código:

Javascript (para obtener el código de autorización): eso funciona

gapi.analytics.ready(function() {

    gapi.analytics.auth.authorize({
        container: 'embed-api-auth-container',
        clientid: '257497260674-ji56vq885ohe9cdr1j6u0bcpr6hu7rde.apps.googleusercontent.com',
    });

    gapi.analytics.auth.on('success', function(response) {
        var code = response.code;
        $.ajax({
            url: "getTokensFromCode.php",
            method: "GET",
            data: {
                "code": code
            },
            success: function (tokens) {
                // I can't get refresh token here, only get "access_token" and "id_token"
                console.log(tokens);
            }
        });


    });

});

PHP (para intercambiar el código de autorización por tokens): eso no funciona

// I get the authorization code in Javascript
$code = $_GET['code'];
$redirectURI = "postmessage";

$client = new Google_Client();
$client->setClientId($clientID);
$client->setClientSecret($clientSecret);
$client->setRedirectUri($redirectURI);
$client->addScope(Google_Service_Analytics::ANALYTICS_READONLY);
$client->setAccessType('offline');
$client->setApprovalPrompt('force');
$client->authenticate($code);

$tokens = $client->getAccessToken();
echo $tokens;

Necesito el token de actualización en Javascript, es por eso que obtengo el código de autorización en Javascript y hago una solicitud de Ajax para obtener el token de actualización.

Respuestas a la pregunta(2)

Su respuesta a la pregunta