Hallo,
ich hab ein Script das mir Termine in den Google Kalender eintragen soll.
Das funktioniert auch soweit ganz gut.
Jedoch soll das ein Cronjob in zukunft von alleine tun, aber wie wenn ich den Zugriff per OAuth bestätigen muss.
Das Script fragt den accesstoken ab und das schafft der Cron ja nicht.
Gibt es eine Möglichkeit das auch ohne zu tun?
ich hab ein Script das mir Termine in den Google Kalender eintragen soll.
Das funktioniert auch soweit ganz gut.
Jedoch soll das ein Cronjob in zukunft von alleine tun, aber wie wenn ich den Zugriff per OAuth bestätigen muss.
Das Script fragt den accesstoken ab und das schafft der Cron ja nicht.
Gibt es eine Möglichkeit das auch ohne zu tun?
Code:
<?php require_once 'google-api-php-client/src/Google_Client.php'; require_once 'google-api-php-client/src/contrib/Google_CalendarService.php'; session_start(); $client = new Google_Client(); $client->setApplicationName("Google Calendar PHP Starter Application"); // Visit https://code.google.com/apis/console?api=calendar to generate your // client id, client secret, and to register your redirect uri. $client->setClientId('xxxxx.apps.googleusercontent.com'); $client->setClientSecret('xxxxx'); $client->setRedirectUri('http://xxxxx.de'); $client->setDeveloperKey('xxxxx'); $cal = new Google_CalendarService($client); if (isset($_GET['logout'])) { unset($_SESSION['token']); } if (isset($_GET['code'])) { $client->authenticate($_GET['code']); $_SESSION['token'] = $client->getAccessToken(); header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']); } if (isset($_SESSION['token'])) { $client->setAccessToken($_SESSION['token']); } if ($client->getAccessToken()) { $calList = $cal->calendarList->listCalendarList(); print "<h1>Calendar List</h1><pre>" . print_r($calList[items][4], true) . "</pre>"; $event = new Google_Event(); $event->setSummary('Testevent'); $event->setLocation('Daheim'); $start = new Google_EventDateTime(); $start->setDateTime('2012-11-03T02:00:00.000-05:00'); $event->setStart($start); $end = new Google_EventDateTime(); $end->setDateTime('2012-11-03T02:25:00.000-05:00'); $event->setEnd($end); $attendee1 = new Google_EventAttendee(); $attendee1->setEmail('xxxxx@gcffm.de'); $attendees = array($attendee1); $event->attendees = $attendees; $event->setDescription("Irgend ein Text"); $createdEvent = $cal->events->insert('xxxxxxxxxxxxxxxxxxxxxxxxxx@group.calendar.google.com', $event); //Returns array not an object echo $createdEvent->id; echo 'Done!'; } else { $authUrl = $client->createAuthUrl(); print "<a class='login' href='$authUrl'>Connect Me!</a>"; } ?>
Kommentar