Я хотел бы синхронизировать свою БД (задачи в моей БД, которые имеют расшифровку, дату, время начала и окончания, а также пользователя) с календарем Google.
Для синхронизации с Google я планирую использовать эти компоненты (конечно, я мог бы как-то написать весь материал сам, но это то, что я могу планировать на будущее, сейчас у меня мало времени, или в качестве альтернативы вы можете предложить какой-нибудь рабочий код, который подключается к календарю Google для отправки / получения данных?).
Теперь моя главная проблема на самом деле не связана с программированием на Delphi. Я должен задавать вопросы, связанные с Delphi, потому что другие вопросы остаются без ответа (например, этот , который я задал).
Так что мне интересно, как сделать синхронизацию. Примечание. Синхронизация выполняется одним способом, и сгенерированный календарь будет доступен только для чтения.
Я могу установить максимальное число в прошлом и будущем для синхронизации (например, 10 дней в прошлом и 100 в будущем). Тогда у меня есть идея:
Когда я запускаю приложение синхронизации, я полностью читаю элементы календаря Google в диапазоне, сравниваю по одному с тем, что есть в БД, и затем «объединяю» изменения. Затем по таймеру я проверяю различия в моей базе данных и загружаю изменения.
Но я не уверен, что это лучшее решение.
Упрощение реального случая заключается в следующем: представьте, что это CRM с некоторой задачей, назначаемой каждому пользователю. Поскольку вне каждой задачи есть логика, которой я хочу управлять этой логикой только в моем приложении, но идея перенаправить календарь в Google состоит в том, что он легко доступен с любого мобильного устройства. Это способ односторонней синхронизации. Я также мог бы позволить календарю не быть доступным только для чтения при каждой синхронизации, я буду «загружать» вновь вставленные задачи, но я буду игнорировать удаленные и отредактированные. Во втором случае этого недостаточно для отслеживания изменений в БД, но я также должен отслеживать изменения в Google, по крайней мере, для «перехвата» вновь добавленных задач.
Я знаю, что это очень сложный вопрос, но я хотел бы вызвать ответ, который может быть полезен, перенаправив меня к алгоритму синхронизации или к образцу кода Delphi или ко всему, что может помочь мне продвинуться в решении этой проблемы. Спасибо.