public function testModelMutation() { $htmlLink = 'https://www.google.com/calendar/event?' . 'eid=NWdpMmFjNDkzbm5yZzh2N2poZXNhZmdldDggaWFuLmJhcmJlckBt'; $data = json_decode('{ "kind": "calendar#event", "etag": "\\"-kteSF26GsdKQ5bfmcd4H3_-u3g/MTE0NTUyNTAxOTk0MjAwMA\\"", "id": "1234566", "status": "confirmed", "htmlLink": "' . $htmlLink . '", "created": "2006-04-13T14:22:08.000Z", "updated": "2006-04-20T09:23:39.942Z", "summary": "Evening Jolt Q3 CTFL", "description": "6.30 - Adminning\\n9.30 - Game", "creator": { "email": "*****@*****.**", "displayName": "Ian Test", "self": true }, "organizer": { "email": "*****@*****.**", "displayName": "Ian Test", "self": true }, "start": { "date": "2006-04-23" }, "end": { "date": "2006-04-24" }, "iCalUID": "*****@*****.**", "sequence": 0, "reminders": { "useDefault": false } }', true); $event = new Google_Service_Calendar_Event($data); $date = new Google_Service_Calendar_EventDateTime(); date_default_timezone_set('UTC'); $dateString = Date("c"); $summary = "hello"; $date->setDate($dateString); $event->setStart($date); $event->setEnd($date); $event->setSummary($summary); $simpleEvent = $event->toSimpleObject(); $this->assertEquals($dateString, $simpleEvent->start->date); $this->assertEquals($dateString, $simpleEvent->end->date); $this->assertEquals($summary, $simpleEvent->summary); $event2 = new Google_Service_Calendar_Event(); $this->assertNull($event2->getStart()); }
public function testModelMutation() { $data = json_decode($this->calendarData, true); $event = new Google_Service_Calendar_Event($data); $date = new Google_Service_Calendar_EventDateTime(); date_default_timezone_set('UTC'); $dateString = Date("c"); $summary = "hello"; $date->setDate($dateString); $event->setStart($date); $event->setEnd($date); $event->setSummary($summary); $simpleEvent = $event->toSimpleObject(); $this->assertEquals($dateString, $simpleEvent->start->date); $this->assertEquals($dateString, $simpleEvent->end->date); $this->assertEquals($summary, $simpleEvent->summary); $event2 = new Google_Service_Calendar_Event(); $this->assertNull($event2->getStart()); }
/** * Creates a Google EventDateTime object. * * @param string $dateTime * @param string $timeZone * @param bool $allDay * * @return \Google_Service_Calendar_EventDateTime */ private function createDateTime($dateTime, $timeZone, $allDay = false) { $date = new \Google_Service_Calendar_EventDateTime(); /* * If an event is all day, only the date must be set * * ex. * - All Day - YYYY-MM-DD * - Not All Day - YYYY-MM-DD\TH:I:S: */ if ($allDay) { $date->setDate($dateTime); } else { $date->setDateTime($dateTime); } $date->setTimeZone($timeZone); return $date; }
public function updateEventEndDate($calendarID, $eventID, $value) { $event = $this->service->events->get($calendarID, $eventID); $end = new Google_Service_Calendar_EventDateTime(); $end->setDate($value); $event->setEnd($end); $updatedEvent = $this->service->events->update($calendarID, $event->getId(), $event); return $updatedEvent->getUpdated(); }
private function update_event_on_google_calendar($event, $ext_calendar, $ext_user, $service) { $insert_event = false; //update event if ($event->getSpecialID() != "") { //First retrieve the event from the google API. try { $newEvent = $service->events->get($ext_calendar->getOriginalCalendarId(), $event->getSpecialID()); } catch (Exception $e) { Logger::log("Fail to get event from google: " . $event->getId()); Logger::log($e->getMessage()); throw $e; } } //insert event if (!$newEvent instanceof Google_Service_Calendar_Event) { //create google event $newEvent = new Google_Service_Calendar_Event(); $insert_event = true; } $newEvent->setSummary($event->getObjectName()); $newEvent->setDescription($event->getDescription()); $start = new Google_Service_Calendar_EventDateTime(); $end = new Google_Service_Calendar_EventDateTime(); //All day event if ($event->getTypeId() == 2) { $star_time = date("Y-m-d", $event->getStart()->getTimestamp()); $end_time = date("Y-m-d", $event->getDuration()->getTimestamp()); $start->setDate($star_time); $end->setDate($end_time); } else { $star_time = date(DATE_RFC3339, $event->getStart()->getTimestamp()); $end_time = date(DATE_RFC3339, $event->getDuration()->getTimestamp()); $start->setDateTime($star_time); $end->setDateTime($end_time); } $newEvent->setStart($start); $newEvent->setEnd($end); try { if ($insert_event) { // insert event $createdEvent = $service->events->insert($ext_calendar->getOriginalCalendarId(), $newEvent); } else { // update event $createdEvent = $service->events->update($ext_calendar->getOriginalCalendarId(), $newEvent->getId(), $newEvent); } } catch (Exception $e) { Logger::log("Fail to add event: " . $event->getId()); Logger::log($e->getMessage()); throw $e; } $event->setSpecialID($createdEvent->getId()); $event->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated())); $event->setExtCalId($ext_calendar->getId()); $event->save(); $invitation = EventInvitations::findOne(array('conditions' => array('contact_id = ' . $ext_user->getContactId() . ' AND event_id =' . $event->getId()))); if ($invitation) { $invitation->setUpdateSync(ExternalCalendarController::date_google_to_sql($createdEvent->getUpdated())); $invitation->setSpecialId($createdEvent->getId()); $invitation->save(); } }
function URSRC_calendar_create($loggin,$fileId,$loginid_name,$URSC_uld_id,$finaldate,$calenderid,$status,$form,$filesarray,$URSRC_firstname,$URSRC_lastname,$folderid){ global $con,$ClientId,$ClientSecret,$RedirectUri,$DriveScopes,$CalenderScopes,$Refresh_Token; $drive = new Google_Client(); $drive->setClientId($ClientId); $drive->setClientSecret($ClientSecret); $drive->setRedirectUri($RedirectUri); $drive->setScopes(array($DriveScopes,$CalenderScopes)); $drive->setAccessType('online'); $authUrl = $drive->createAuthUrl(); $refresh_token= $Refresh_Token; $drive->refreshToken($refresh_token); $service = new Google_Service_Drive($drive); if($form=='TERMINATE'){ $file_arraycount=1; try { $permissions = $service->permissions->listPermissions($fileId); $return_value= $permissions->getItems(); } catch (Exception $e) { $ss_flag=0; } foreach ($return_value as $key => $value) { if ($value->emailAddress==$loggin) { $permission_id=$value->id; } } if($permission_id!=''){ try { $service->permissions->delete($fileId, $permission_id); $ss_flag=1; } catch (Exception $e) { $ss_flag=0; } } else{ $ss_flag=1; } } else{ $value=$loggin; $type='user'; $role='reader'; $email=$loggin; $newPermission = new Google_Service_Drive_Permission(); $newPermission->setValue($value); $newPermission->setType($type); $newPermission->setRole($role); $newPermission->setEmailAddress($email); try { $service->permissions->insert($fileId, $newPermission); $ss_flag=1; } catch (Exception $e) { $ss_flag=0; } if($ss_flag==1){ if($filesarray!='') { $file_array=array(); $allfilearray=(explode(",",$filesarray)); foreach ($allfilearray as $value) { $uploadfilename=$value; $drivefilename=$URSRC_firstname.' '.$URSRC_lastname.'-'.$uploadfilename; $extension =(explode(".",$uploadfilename)); if($extension[1]=='pdf'){$mimeType='application/pdf';} if($extension[1]=='jpg'){$mimeType='image/jpeg';} if($extension[1]=='png'){$mimeType='image/png';} $file_id_value =insertFile($service,$drivefilename,'PersonalDetails',$folderid,$mimeType,$uploadfilename); if($file_id_value!=''){ array_push($file_array,$file_id_value); } } $file_arraycount=count($file_array); } else{ $file_arraycount=1; } } } if($ss_flag==1 && $file_arraycount>0){ $cal = new Google_Service_Calendar($drive); $event = new Google_Service_Calendar_Event(); $event->setsummary($loginid_name.' '.$status); $event->setDescription($URSC_uld_id); $start = new Google_Service_Calendar_EventDateTime(); $start->setDate($finaldate);//setDate('2014-11-18'); $event->setStart($start); $event->setEnd($start); try{ $createdEvent = $cal->events->insert($calenderid, $event); $cal_flag=1; } catch(Exception $e){ $cal_flag=0; } } $flag_array=[$ss_flag,$cal_flag,$file_id_value,$file_array]; return $flag_array; }
require_once __DIR__ . '/../../../google.php'; // Event object $event = new Google_Service_Calendar_Event(); $event->setSummary($summary); // Event start date $start = new Google_Service_Calendar_EventDateTime(); if ($allDay) { $start->setDate($_POST['startDate']); } else { $start->setDateTime($_POST['startDate']); } $event->setStart($start); // Event end date $end = new Google_Service_Calendar_EventDateTime(); if ($allDay) { $end->setDate($_POST['endDate']); } else { $end->setDateTime($_POST['endDate']); } $event->setEnd($end); // Insert the event $createdEvent = $googleCalendarService->events->insert($calendarId, $event); // Get the event data $createdEvent = $createdEvent->toSimpleObject(); $newEvent = []; $newEvent['id'] = $createdEvent->id; $newEvent['url'] = $createdEvent->htmlLink; $newEvent['calendar']['id'] = $calendarId; $newEvent['startDate'] = isset($createdEvent->start['date']) ? $createdEvent->start['date'] : $createdEvent->start['dateTime']; $newEvent['endDate'] = isset($createdEvent->end['date']) ? $createdEvent->end['date'] : $createdEvent->end['dateTime']; $newEvent['summary'] = isset($createdEvent->summary) ? $createdEvent->summary : '';
function URSRC_calendar_create($loginid_name, $URSC_uld_id, $finaldate, $calenderid, $status) { global $con, $ClientId, $ClientSecret, $RedirectUri, $DriveScopes, $CalenderScopes, $Refresh_Token; $drive = new Google_Client(); $Client = get_servicedata(); $ClientId = $Client[0]; $ClientSecret = $Client[1]; $RedirectUri = $Client[2]; $DriveScopes = $Client[3]; $CalenderScopes = $Client[4]; $Refresh_Token = $Client[5]; $drive->setClientId($ClientId); $drive->setClientSecret($ClientSecret); $drive->setRedirectUri($RedirectUri); $drive->setScopes(array($DriveScopes, $CalenderScopes)); $drive->setAccessType('online'); $authUrl = $drive->createAuthUrl(); $refresh_token = $Refresh_Token; $drive->refreshToken($refresh_token); $cal = new Google_Service_Calendar($drive); $event = new Google_Service_Calendar_Event(); $event->setsummary($loginid_name . ' ' . $status); if ($status == 'JOIN DATE') { $event->setDescription($URSC_uld_id); } $start = new Google_Service_Calendar_EventDateTime(); $start->setDate($finaldate); //setDate('2014-11-18'); $event->setStart($start); $event->setEnd($start); try { $createdEvent = $cal->events->insert($calenderid, $event); $cal_flag = 1; } catch (Exception $e) { $cal_flag = 0; } return $cal_flag; }
} $dtstamp = $event->getProperty('dtstamp'); $dtstart = $event->getProperty('dtstart', 0, true); $dtend = $event->getProperty('dtend', 0, true); $uid = $event->getProperty('uid'); preg_match('/^([0-9A-Za-z]+)-([0-9]+)\\@(.+?)$/', $uid, $matches); $aipoId = $matches[2]; $start = new Google_Service_Calendar_EventDateTime(); if (!empty($dtstart['params']) && $dtstart['params']['VALUE'] == 'DATE') { $start->setDate($dtstart['value']['year'] . '-' . sprintf('%02d', $dtstart['value']['month']) . '-' . sprintf('%02d', $dtstart['value']['day'])); } else { $start->setDateTime($dtstart['value']['year'] . '-' . sprintf('%02d', $dtstart['value']['month']) . '-' . sprintf('%02d', $dtstart['value']['day']) . 'T' . $dtstart['value']['hour'] . ':' . $dtstart['value']['min'] . ':' . $dtstart['value']['sec'] . '+09:00'); } $end = new Google_Service_Calendar_EventDateTime(); if (!empty($dtend['params']) && $dtend['params']['VALUE'] == 'DATE') { $end->setDate($dtend['value']['year'] . '-' . sprintf('%02d', $dtend['value']['month']) . '-' . sprintf('%02d', $dtend['value']['day'])); } else { $end->setDateTime($dtend['value']['year'] . '-' . sprintf('%02d', $dtend['value']['month']) . '-' . sprintf('%02d', $dtend['value']['day']) . 'T' . $dtend['value']['hour'] . ':' . $dtend['value']['min'] . ':' . $dtend['value']['sec'] . '+09:00'); } $recurrence = array(); $exdate = $event->getProperty('exdate'); if (!empty($exdate)) { $exdateText = 'EXDATE;TZID=Asia/Tokyo:'; $exdateLists = array(); foreach ($exdate as $value) { $exdateLists[] = $value['year'] . sprintf('%02d', $value['month']) . sprintf('%02d', $value['day']) . 'T' . $value['hour'] . $value['min'] . $value['sec']; } asort($exdateLists); $exdateText .= implode($exdateLists, ','); $recurrence[] = $exdateText; }
function URSRC_calendar_create($loggin, $fileId, $loginid_name, $URSC_uld_id, $finaldate, $calenderid, $status, $form, $filesarray, $URSRC_firstname, $URSRC_lastname, $folderid) { global $con, $ClientId, $ClientSecret, $RedirectUri, $DriveScopes, $CalenderScopes, $Refresh_Token; $drive = new Google_Client(); $Client = get_servicedata(); $ClientId = "651424197810-72ki9kr1k58v3qec0034q1bfj2og6ss8.apps.googleusercontent.com"; //$Client[0]; $ClientSecret = "NRY1PYuUK-NeJAZVJxUvXBeb"; //$Client[1]; $RedirectUri = "https://developers.google.com/oauthplayground"; //$Client[2]; $DriveScopes = "https://www.googleapis.com/auth/drive"; //$Client[3]; $CalenderScopes = "https://www.googleapis.com/auth/calendar"; //$Client[4]; $Refresh_Token = "1/YkIO518mEEVO9z5bdieivdpf9XVBnZN4PWZPLStyGzk"; //$Client[5]; $drive->setClientId($ClientId); $drive->setClientSecret($ClientSecret); $drive->setRedirectUri($RedirectUri); $drive->setScopes(array($DriveScopes, $CalenderScopes)); $drive->setAccessType('online'); $authUrl = $drive->createAuthUrl(); $refresh_token = $Refresh_Token; $drive->refreshToken($refresh_token); $service = new Google_Service_Drive($drive); // print_r($service); if ($form == 'TERMINATE') { $file_arraycount = 1; try { $permissions = $service->permissions->listPermissions($fileId); $return_value = $permissions->getItems(); } catch (Exception $e) { $ss_flag = 0; } foreach ($return_value as $key => $value) { if ($value->emailAddress == $loggin) { $permission_id = $value->id; } } if ($permission_id != '') { try { $service->permissions->delete($fileId, $permission_id); $ss_flag = 1; } catch (Exception $e) { $ss_flag = 0; } } else { $ss_flag = 1; } } else { $value = $loggin; $type = 'user'; $role = 'reader'; $email = $loggin; $newPermission = new Google_Service_Drive_Permission(); $newPermission->setValue($value); $newPermission->setType($type); $newPermission->setRole($role); $newPermission->setEmailAddress($email); try { $service->permissions->insert($fileId, $newPermission); $ss_flag = 1; } catch (Exception $e) { $ss_flag = 0; } if ($ss_flag == 1) { if ($filesarray != '') { $file_array = array(); $allfilearray = explode(",", $filesarray); foreach ($allfilearray as $value) { $uploadfilename = $value; $drivefilename = $URSRC_firstname . ' ' . $URSRC_lastname . '-' . $uploadfilename; $extension = explode(".", $uploadfilename); if ($extension[1] == 'pdf') { $mimeType = 'application/pdf'; } if ($extension[1] == 'jpg') { $mimeType = 'image/jpeg'; } if ($extension[1] == 'png') { $mimeType = 'image/png'; } $file_id_value = insertFile($service, $drivefilename, 'PersonalDetails', $folderid, $mimeType, $uploadfilename); if ($file_id_value != '') { array_push($file_array, $file_id_value); } } $file_arraycount = count($file_array); } else { $file_arraycount = 1; } } } if ($ss_flag == 1 && $file_arraycount > 0) { $cal = new Google_Service_Calendar($drive); $event = new Google_Service_Calendar_Event(); $event->setsummary($loginid_name . ' ' . $status); $event->setDescription($URSC_uld_id); $start = new Google_Service_Calendar_EventDateTime(); $start->setDate($finaldate); //setDate('2014-11-18'); $event->setStart($start); $event->setEnd($start); try { $createdEvent = $cal->events->insert($calenderid, $event); $cal_flag = 1; } catch (Exception $e) { $cal_flag = 0; } } $flag_array = [$ss_flag, $cal_flag, $file_id_value, $file_array]; return $flag_array; }
public function updateGoogleCalendarEvent($action) { try { // catch google exceptions so the whole app doesn't crash if google has a problem syncing $admin = Yii::app()->settings; if ($admin->googleIntegration) { if (isset($this->syncGoogleCalendarId) && $this->syncGoogleCalendarId) { // // Google Calendar Libraries // $timezone = date_default_timezone_get(); // require_once "protected/extensions/google-api-php-client/src/Google_Client.php"; // require_once "protected/extensions/google-api-php-client/src/contrib/Google_Service_Calendar.php"; // date_default_timezone_set($timezone); // // $client = new Google_Client(); // $client->setClientId($admin->googleClientId); // $client->setClientSecret($admin->googleClientSecret); // //$client->setDeveloperKey($admin->googleAPIKey); // $client->setAccessToken($this->syncGoogleCalendarAccessToken); // $client->setUseObjects(true); // return objects instead of arrays // $googleCalendar = new Google_Service_Calendar($client); $auth = new GoogleAuthenticator(); $googleCalendar = $auth->getCalendarService(); // check if the access token needs to be refreshed // note that the google library automatically refreshes the access token if we need a new one, // we just need to check if this happend by calling a google api function that requires authorization, // and, if the access token has changed, save this new access token $testCal = $googleCalendar->calendars->get($this->syncGoogleCalendarId); // if($this->syncGoogleCalendarAccessToken != $client->getAccessToken()){ // $this->syncGoogleCalendarAccessToken = $client->getAccessToken(); // $this->update(array('syncGoogleCalendarAccessToken')); // } $summary = $action->actionDescription; if ($action->associationType == 'contacts' || $action->associationType == 'contact') { $summary = $action->associationName . ' - ' . $action->actionDescription; } $event = $googleCalendar->events->get($this->syncGoogleCalendarId, $action->syncGoogleCalendarEventId); if (is_array($event)) { $event = new Google_Service_Calendar_Event($event); } $event->setSummary($summary); if (empty($action->dueDate)) { $action->dueDate = time(); } if ($action->allDay) { $start = new Google_Service_Calendar_EventDateTime(); $start->setDate(date('Y-m-d', $action->dueDate)); $event->setStart($start); if (!$action->completeDate) { $action->completeDate = $action->dueDate; } $end = new Google_Service_Calendar_EventDateTime(); $end->setDate(date('Y-m-d', $action->completeDate + 86400)); $event->setEnd($end); } else { $start = new Google_Service_Calendar_EventDateTime(); $start->setDateTime(date('c', $action->dueDate)); $event->setStart($start); if (!$action->completeDate) { $action->completeDate = $action->dueDate; } // if no end time specified, make event 1 hour long $end = new Google_Service_Calendar_EventDateTime(); $end->setDateTime(date('c', $action->completeDate)); $event->setEnd($end); } if ($action->color && $action->color != '#3366CC') { $colorTable = array(10 => 'Green', 11 => 'Red', 6 => 'Orange', 8 => 'Black'); if (($key = array_search($action->color, $colorTable)) != false) { $event->setColorId($key); } } $newEvent = $googleCalendar->events->update($this->syncGoogleCalendarId, $action->syncGoogleCalendarEventId, $event); } } } catch (Exception $e) { } }