Создание события календаря Google с помощью гаджета с помощью google-api-php-client
У меня есть рабочий скрипт, который создает события в моем календаре Google - используя google-api-php-client. Я пытаюсь добавить гаджет к каждому событию, которое он создает, с помощью следующего кода:
require_once "google-api-php-client/src/Google_Client.php";
require_once "google-api-php-client/src/contrib/Google_CalendarService.php";
define('CLIENT_ID', 'xxx...');
define('SERVICE_ACCOUNT_NAME', 'xxx...');
define('KEY_FILE', 'xxx...');
$client = new Google_Client();
$client->setApplicationName("WEB ACCTION");
$key = file_get_contents(KEY_FILE);
$client->setAssertionCredentials(new Google_AssertionCredentials(SERVICE_ACCOUNT_NAME,'xxx...',$key));
$client->setClientId(CLIENT_ID);
$service = new Google_CalendarService($client);
$event = new Google_Event();
$event->setSummary($variable1);
$event->setLocation($variable2 . ", " . $variable3);
$start = new Google_EventDateTime();
$start->setDateTime(date(DATE_ATOM, strtotime($variable4) + $time_offset));
$event->setStart($start);
$end = new Google_EventDateTime();
$end->setDateTime(date(DATE_ATOM, strtotime($variable5) + $time_offset));
$event->setEnd($end);
//The not working section
//$gadget = new Google_EventGadget();
//$gadget->setIconLink('xxx...');
//$gadget->setTitle('xxx...');
//$gadget->setHeight('xxx...');
//$gadget->setWidth('xxx...');
//$gadget->setLink('xxx...');
//$gadget->setType('xxx...');
//$gadget->setDisplay('xxx...');
//$event->setGadget($gadget);
$createdEvent = $service->events->insert($g_calendar , $event);
К сожалению, я не могу заставить его работать, и я не смог найти никакой информации о создании гаджетов с помощью google-api-php-client. Библиотека включает в себя класс Google_EventGadget и функцию setGadget, но нет информации о том, как ее использовать. Кто-нибудь может мне помочь?
1 ответ
Я нашел решение - бывает, что google-api-php-client поддерживает только сертифицированные ссылки на гаджет и его значок. Это не работало, пока я не использовал ссылки https://www....
Он отлично работает, хотя хостинг, который я использовал для тестов, не имеет сертификата безопасности.
$gadget->setIconLink('https://www...');
$gadget->setLink('https://www....');
$gadget->setDisplay('chip');
$gadget->setWidth('400');
$gadget->setHeight('100');
$event->setGadget($gadget);
$createdEvent = $service->events->insert($g_calendar , $event);
Надеюсь, это сэкономит кому-то время!