Я пытаюсь создать событие календаря Google, используя следующий код, приведенный ниже, но я получаю класс Событие не найдено. Как создать новое событие. пожалуйста помоги
<?php require_once '../../src/Google_Client.php'; require_once '../../src/contrib/Google_CalendarService.php'; session_start(); $client = new Google_Client(); $client->setApplicationName("Google Calendar PHP Starter Application"); $client->setClientId(''); $client->setClientSecret(''); $client->setRedirectUri('simple.php'); $client->setDeveloperKey('insert_your_developer_key'); $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']); } $authUrl = $client->createAuthUrl(); if (!$client->getAccessToken()) {
здесь я создаю новое событие
- События Календаря Google
- Доступ к событиям календаря Google из учетной записи службы: {"error": "access_denied"}. Нет приложений Google
- Изменение событий календаря Google из учетной записи службы Google: 403
- Идентификация уведомления о значении API Google Calendar API
- Как вставить событие в календарь Google Google, используя php?
$event = new Event(); $event->setSummary("test title"); $event->setLocation("test location"); $start = new EventDateTime(); $start->setDateTime('04-03-2012 09:25:00:000 -05:00'); $event->setStart($start); $end = new EventDateTime(); $end->setDateTime('04-03-2012 10:25:00:000 -05:00'); $createdEvent = $cal->events->insert('primary', $event); echo $createdEvent->getId(); }
У меня была точно такая же проблема. Их документация очень неполна. Названия классов неверны в их примере. Вот код, который я получил для работы:
$event = new Google_Event(); $event->setSummary('Halloween'); $event->setLocation('The Neighbourhood'); $start = new Google_EventDateTime(); $start->setDateTime('2012-10-31T10:00:00.000-05:00'); $event->setStart($start); $end = new Google_EventDateTime(); $end->setDateTime('2012-10-31T10:25:00.000-05:00'); $event->setEnd($end); $createdEvent = $cal->events->insert('[calendar id]', $event); //Returns array not an object echo $createdEvent->id;
$cal->events->insert
возвращает массив, а не такой объект, как в своем примере кода. Если вы хотите, чтобы он возвращал объект, вам нужно определить его в вызове Google_Client
, например:
$client = new Google_Client(array('use_objects' => true));
У меня тоже была эта проблема, и, похоже, все изменилось с API Google снова.
Используя пример кода в документах, которые я пытался сделать
$calendar = new Calendar();
Это отбросило ошибку для класса Calendar не найден. Оказывается, все было переименовано, и я должен был сделать следующее:
$calendar = new Google_Service_Calendar_Calendar();
Похоже, что соглашение об одобрении ok позволяет избежать конфликтов, но было бы неплохо обновить документы. Поэтому, чтобы решить проблему OP сегодня, он теперь решает свою проблему, используя:
$event = new Google_Service_Calendar_Event();
Вы можете просмотреть файл Google / Service / Calendar.php, и вы должны увидеть все соответствующие классы с этим соглашением об именах.