// code to load the token from your database
    //===========
    // return array(
    //     'access_token'  => 'user_access_token',
    //     'refresh_token' => 'user_refresh_token',
    //     'expires_at'    => 'expires_timestamp'
    // );
}
$savedToken = load_saved_token_data();
// If there is saved token data to use, set it now
if (!empty($savedToken) && isset($savedToken['access_token'])) {
    $tv->setTokenData(array('access_token' => $savedToken['access_token'], 'refresh_token' => $savedToken['refresh_token'], 'expires_at' => $savedToken['expires_at']));
} else {
    // No token data.
    // So you need to get the user credentials for authentication.
    $tv->setUserCredentials(USERNAME, PASSWORD);
}
// extra parameters to pass in for the "new_token" event callback
$extraParams = array('extra_params' => 'this can be whatever you want');
// attach a listener function for when a new token is generated so you can save it to a database
$tv->on('new_token', function ($tokenData, $extraParams) {
    $accessToken = $tokenData['access_token'];
    $refreshToken = $tokenData['refresh_token'];
    // timestamp when the access token expires
    $expiresAt = $tokenData['expires_at'];
    //============
    // code to save token data to your database
    //============
}, $extraParams);
/*
//*********************