После нескольких часов чтения документации Google API и поиска в Интернете мне удалось написать простую функцию PHP для вставки события в мой календарь Google (если кому-то нужен код, просто спросите).
Однако следующее, что я хочу сделать, это удалить все содержимое моего календаря Google. Первоначально я думал, что сделаю это, прочитав все события, а затем удалив каждое из них, но, согласно Google, я могу сделать это с помощью одной команды:
$service->календари->очистить($cal_id);
Однако, поскольку документация Google API охватывает только фактическую команду и не показывает какой-либо код, который должен предшествовать этому, поэтому я использовал код авторизации, который работал в сценарии вставки события, но я просто не могу заставить его работать для очищаю данные, и я получаю сообщение об ошибке:
Примечание: Неопределенная переменная: служба в index.php в строке 68
Весь мой код следует:
<?php
//
// example code taken from:
// https://developers.google.com/google-apps/calendar/v3/reference/calendars/clear
//
//
calendclear('[email protected]');
//---------------------------------------------------//
// funtion to delete all events from Google calendar //
//---------------------------------------------------//
function calendclear ($cal_id) {
session_start();
require_once '../google-api-php-client-master/autoload.php';
//Google credentials
$client_id = 'xxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com';
$service_account_name = '[email protected]';
$key_file_location = '../google-api-php-client-master/API Project-xxxxxxxxxxxx.p12';
if (!strlen($service_account_name) || !strlen($key_file_location))
echo missingServiceAccountDetailsWarning();
$client = new Google_Client();
$client->setApplicationName("Whatever the name of your app is");
if (isset($_SESSION['service_token'])) {
$client->setAccessToken($_SESSION['service_token']);
}
$key = file_get_contents($key_file_location);
$cred = new Google_Auth_AssertionCredentials(
$service_account_name,
array('https://www.googleapis.com/auth/calendar'),
$key
);
$client->setAssertionCredentials($cred);
if($client->getAuth()->isAccessTokenExpired()) {
try {
$client->getAuth()->refreshTokenWithAssertion($cred);
} catch (Exception $e) {
var_dump($e->getMessage());
}
}
$_SESSION['service_token'] = $client->getAccessToken();
$calendarService = new Google_Service_Calendar($client);
$calendarList = $calendarService->calendarList;
//delete all calendar data
try {
$service->calendars->clear($cal_id);
} catch (Exception $e) {
var_dump($e->getMessage());
}
echo 'Calendar Successfully Cleared';
}
?>