Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function getClient() {
- $client = new Google_Client();
- $client->setApplicationName("DL Calendar");
- $client->setAuthConfig('application/client_secrets.json');
- $client->addScope('profile');
- $client->setIncludeGrantedScopes(true);
- $client->setAccessType('offline');
- return $client;
- }
- function gcalendar() {
- $this->load->add_package_path(APPPATH . 'vendor/autoload');
- $client = $this->getClient();
- //$client->setRedirectUri(site_url('calendar/index'));
- $client->addScope(Google_Service_Calendar::CALENDAR);
- if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
- $client->setAccessToken($_SESSION['access_token']);
- $access_token = $_SESSION['access_token'];
- $service = new ]Google_Service_Calendar($client);
- $calendar = new Google_Service_Calendar_Calendar();
- //$calendarList = $service->calendarList->listCalendarList();
- $calendar = $service->calendars->get('primary');
- $params = array(
- 'owner_id' => get_current_user_id(),
- 'title' => get_current_user(). ' ' .'Google Calendar',
- 'type' => 'gcal',
- 'url' => $calendar->id,
- );
- $calendar_id = $this->Calendar_model->add_calendar($params);
- redirect('calendar/index');
- } else {
- $redirect_uri = site_url('calendar/oauth2callback');
- header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
- }
- $this->session->set_flashdata('success', 'Event Successfully Added');
- }
- //Build the client object
- $client = $this->getClient();
- $client->addScope(Google_Service_Calendar::CALENDAR);
- $service = new Google_Service_Calendar($client);
- $url = parse_url($_SERVER['REQUEST_URI']); parse_str($url['query'], $params);
- $code = $params['code'];
- //To exchange an authorization code for an access token, use the authenticate method:
- if (! isset($code)) {
- $auth_url = $client->createAuthUrl();
- header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
- } else {
- $token = $client->fetchAccessTokenWithAuthCode($code);
- $client->setAccessToken($token);
- $client->authenticate($code);
- $_SESSION['access_token'] = $client->getAccessToken();
- $redirect_uri = site_url('calendar/gcalendar');
- header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
- }
- function gcalendar_events() {
- $client = $this->getClient();
- $client->addScope(Google_Service_Calendar::CALENDAR);
- // $client->setRedirectUri(site_url('calendar/gcalendar'));
- $client->setAccessType('offline'); //need calendar events to appear even if not logged in to google
- if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
- $client->setAccessToken($_SESSION['access_token']);
- $access_token = $_SESSION['access_token'];
- $service = new Google_Service_Calendar($client);
- $id = 'primary';
- $calendar = new Google_Service_Calendar_Calendar();
- $calendar = $service->calendars->get('primary');
- $event = new Google_Service_Calendar_Event();
- $events = $service->events->listEvents($id);
- foreach ($events->getItems() as $event) {
- $startTime = strtotime($event->getStart()->dateTime) ;
- $endTime = strtotime($event->getEnd()->dateTime);
- $start = date('Y-m-d H:i:s', $startTime);
- $end = date('Y-m-d H:i:s', $endTime);
- $eventsArr[] = array(
- 'title' => $event->getSummary(),
- 'start'=> $start,
- 'end' => $end,
- );
- }
- // Return a single `events` with all the `$eventsArr`
- echo json_encode($eventsArr);
- }
- }
- if ($client->isAccessTokenExpired()) {
- $refresh_token = $client->fetchAccessTokenWithRefreshToken($client->getRefreshToken());
- $client->setAccessToken($refresh_token);
- $_SESSION['access_token'] = $refresh_token;
- $this->load->helper('file');
- write_file('application/client_secrets.json', json_encode($client->getAccessToken()));
- } else {
- $access_token = $_SESSION['access_token'];
- }
- $token = $client->getAccessToken();
- $authObj = json_decode($token);
- if(isset($authObj->refresh_token)) {
- save_refresh_token($authObj->refresh_token);
- }
- $client->refreshToken($your_saved_refresh_token);
- $_SESSION['access_token'] = $client->getAccessToken();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement