Интеграция с Google Calendar

Скачать пакет можно здесь.

Введение

В этом разделе объясняется, как синхронизировать Scheduler и Google Calendar.

Синхронизация работает в обоих направлениях, поэтому любые изменения, внесённые в Scheduler или Google Calendar, будут отображаться в обоих местах.

  • Если одно и то же событие изменено в обоих приложениях, будет синхронизировано последнее изменение.
  • Удаление события в одном календаре приведет к его удалению в обоих.
  • Синхронизация ограничена основным календарём Google; вторичные календари не поддерживаются.
  • Все события из Scheduler и Google Calendar синхронизируются вместе — выбрать отдельные события для синхронизации нельзя.
  • По умолчанию Scheduler импортирует текст события и его продолжительность (время начала и окончания) из Google Calendar. Дополнительные детали события можно получить при необходимости. Подробнее об этом см. ниже.

Начало работы

Для настройки интеграции выполните следующие шаги:

  1. Войдите в Google API console по адресу https://console.cloud.google.com/cloud-resource-manager.
  2. Нажмите кнопку "Create new project", чтобы открыть экран "Google apis".
  3. Включите сервис "Calendar API" на вкладке "Services".
  4. Перейдите на вкладку "API Access" и нажмите "Create an OAuth2.0 Client ID". Откроется форма "Create Client ID".
  5. Заполните форму и нажмите "Next" для продолжения.
  6. Выберите опцию "Service account" и нажмите "Create client ID". Это сгенерирует ваш приватный ключ, Client ID и Email — сохраните их для дальнейшего использования.
  7. Войдите в Google Calendar, который вы хотите использовать с приложением, и предоставьте доступ Email-адресу, созданному в Google API console (шаг 1).
  8. Найдите и сохраните идентификатор календаря в настройках календаря.

На сервере:

  1. Создайте PHP-файл с именем "data.php" со следующим кодом:
    <?php
     
    include('../src/google_proxy.php');
     
    $calendar = new GoogleCalendarProxy(
        "<account>@developer.gserviceaccount.com",
        "<account>.apps.googleusercontent.com",
        file_get_contents("<key>"),
        "<calendar id>"
    );
     
    $calendar->connect();
    ?>

где

  • <account> — Email-адрес, используемый для входа в Google API console.
  • <key> — путь к вашему приватному ключу.
  • <calendar_id> — идентификатор календаря, полученный из настроек Google Calendar.

На клиенте:

1. Откройте HTML-файл с инициализированным scheduler или настройте его обычным способом (см. статью Как начать для подробностей).

2. Загрузите события Google Calendar в scheduler с помощью метода load. Первый параметр — путь к файлу 'data.php', второй — формат данных, который должен быть 'json'.

scheduler.load("./data.php", "json");

3. Инициализируйте dataProcessor для обеспечения двусторонней синхронизации (пропустите этот шаг, если нужен только доступ для чтения).

var dp =  scheduler.createDataProcessor("./data.php");
dp.init(scheduler);
dp.setTransactionMode("POST", false);

Как передать дополнительную информацию, связанную с событием

По умолчанию Scheduler читает все поля Google Calendar, но активно обрабатывает только четыре из них. Остальные поля доступны только для чтения.

Существует следующее соответствие между полями Google Calendar и Scheduler:

Google Calendar -> Scheduler

  • id -> id
  • title -> text
  • startTime -> start_date
  • endTime -> end_date

Чтобы обрабатывать дополнительные свойства, вы можете изменить файл "src/google_proxy.php", который входит в пакет
(ссылка для скачивания).

Наверх