Интеграция с Google Calendar
Скачать пакет можно здесь.
Введение
В этом разделе объясняется, как синхронизировать Scheduler и Google Calendar.
Синхронизация работает в обоих направлениях, поэтому любые изменения, внесённые в Scheduler или Google Calendar, будут отображаться в обоих местах.
- Если одно и то же событие изменено в обоих приложениях, будет синхронизировано последнее изменение.
- Удаление события в одном календаре приведет к его удалению в обоих.
- Синхронизация ограничена основным календарём Google; вторичные календари не поддерживаются.
- Все события из Scheduler и Google Calendar синхронизируются вместе — выбрать отдельные события для синхронизации нельзя.
- По умолчанию Scheduler импортирует текст события и его продолжительность (время начала и окончания) из Google Calendar. Дополнительные детали события можно получить при необходимости. Подробнее об этом см. ниже.
Начало работы
Для настройки интеграции выполните следующие шаги:
- Войдите в Google API console по адресу https://console.cloud.google.com/cloud-resource-manager.
- Нажмите кнопку "Create new project", чтобы открыть экран "Google apis".
- Включите сервис "Calendar API" на вкладке "Services".
- Перейдите на вкладку "API Access" и нажмите "Create an OAuth2.0 Client ID". Откроется форма "Create Client ID".
- Заполните форму и нажмите "Next" для продолжения.
- Выберите опцию "Service account" и нажмите "Create client ID". Это сгенерирует ваш приватный ключ, Client ID и Email — сохраните их для дальнейшего использования.
- Войдите в Google Calendar, который вы хотите использовать с приложением, и предоставьте доступ Email-адресу, созданному в Google API console (шаг 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", который входит в пакет
(ссылка для скачивания).
Наверх