Hello All,
I am using google calendaer API PHP libraries.
but refreshToken is not working for me.
Please tell me where am wrong in this code:

require_once 'src/Google_Client.php';
require_once 'src/contrib/Google_CalendarService.php';
$client = new Google_Client();
$client->setApplicationName("Google Calendar PHP Starter Application"); 
$client->setAccessType('offline'); // added this to handle offline section

$cal = new Google_CalendarService($client);
if (isset($_GET['logout'])) 

if (isset($_GET['code'])) 
  $_SESSION['token'] = $client->getAccessToken();
  //echo "in the GET['code']: ". $_SESSION['token'] . "is session token<br>";
  header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);

//check whether tocken is expired or not
{   echo " Access Token Expired<br><br>"; }

if (isset($_SESSION['token'])) 
  //echo $_SESSION['token'] . ": <b>is session token in the </b>isset(_SESSION[token]) function";
 //json decode the session token. Save it in a variable as object and 
    $sessionToken = json_decode($_SESSION['token']);

   echo "before refresh token: <br> " .$_SESSION['token'] . "<br><br>";
   $client->refreshToken($_SESSION["token"]);//update token
   //**********************before refresh it gives me value but after use of refreshToken it do not give********** 
   echo "after refresh token: <br> " .$_SESSION['token'] . "<br><br>";

   if (isset($sessionToken->refresh_token)) 
        //refresh token is only set after a proper authorisation
        $number_of_days = 30 ;
        $date_of_expiry = time() + 60 * 60 * 24 * $number_of_days ;
        setcookie('token', $sessionToken->refresh_token, $date_of_expiry);

else if (isset($_COOKIE["token"])) 
    echo "<br>in else loop <br>";  
    //if we don't have a session we will grab it from the cookie
    // this is just saved to check whether session and cookie token valueas are same or not
    //echo "<b>1\/xGRQ4M9Sb3O4goVpFEVUPVswmf4Bj_Kqbt6SAPFTOCk<br></b>";
    echo "<b>".$_COOKIE["token"] . "</b>    :is cookie token<br>";

  //***********NOT WORKING REFESH COKIEE TOKEN***********
    $client->refreshToken($_COOKIE["token"]);//update token

    //Each time you need the access token, check if there is something saved in the cookie.
    //If $cookie is empty, you are requested to get a new acces and refresh token by authenticating.
    //If $cookie is not empty, you will tell the client to refresh the token for further use,
    // hence get a new acces token with the help of the refresh token without authenticating

    $cookie = $this->Cookie->read('token');
    //echo $cookie;
//        $client->refreshToken($this->Cookie->read('token'));
//        $client->refreshToken($this->);

if ($client->getAccessToken()) 
$_SESSION['token'] = $client->getAccessToken();
//ECHO "<b>".$session_token."</b><BR> is a session token";//this gives you values of "access_token" , "token_type",expires_in","refresh_token" and "created"
  $authUrl = $client->createAuthUrl();
  print "<a class='login' href='$authUrl'>Connect Me!</a>";

insertEvent("test 123 test Google API for send calender for Without sending Notification",$cal,'Meeting room 1','phularipriti@gmail.com');

function insertEvent($subject='123 Test for add calender using Google API',$cal,$location='Somewhere',$email='priti.phulari@gslab.com')
echo "<br>in insert event function <br>";
$event = new Google_Event();
$event->setColorId(4); // it gives color to event
$start = new Google_EventDateTime();
$end = new Google_EventDateTime();
$event->setDescription('I like this Event simply awesome');
$attendee1 = new Google_EventAttendee();
$attendees = array($attendee1); 
$event->setICalUID ='20140402';            
$event->setId  ='20140402';               
$event->attendees = $attendees;
$optinalArguments = array("sendNotifications"=>true);

$createdEvent = $cal->events->insert('primary',$event,$optinalArguments);

print_r ($createdEvent);
echo "Uid for the calender - ".$createdEvent['id']; //Note this for delete or update event
//echo "Send Notification";


I have written line in the code where it get stucks.
**********************before refresh it gives me value but after use of refreshToken it do not give**********

AM not getting why it is not working.
(I think, )Syntax (and everything) is correct!
then why ???

So silly I was,
I was passing whole $_SESSION['token']
not the actual token.
I decode it using json and sent refreshToken key.
it is working but now the another problem is,

what after cookie expire?
how to handle it?

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, learning, and sharing knowledge.