Как синхронизировать календари gmail в davdroid 1.10.1.-gplay с помощью caldav в android 6.0.1?

Я пытаюсь синхронизировать свои календари с помощью caldav в davdroid, используя следующие учетные данные:

"войти с URL и именем пользователя"

Где URL-адрес основан на этом руководстве Google Caldav-API о том, как использовать Caldav для Apple и/или Thunderbird:

https://apidata.googleusercontent.com/caldav/v2/calid/user https://apidata.googleusercontent.com/caldav/v2/calid/events

Где calid заменяется либо моим идентификатором календаря Google в форме:

<26-character long calender id>

или

<26-character long calender id>@group.calendar.google.com

Как указано в настройках календаря Google в:

https://calendar.google.com/calendar/r/settings/calendar/

Я попытался ввести 4 комбинации в davdroid, и особенность заключается в том, что он работает для 1 календаря, для которого я указан как владелец в ссылке https://calendar.google.com/calendar/r/settings/calendar/ для этого календарь, но он не показывает календари в davdroid для календарей, для которых календарь Google говорит, что он «подписан».

Поэтому я подумал, что это может быть проблема с разрешениями. Поэтому я сделал новый тестовый календарь, чтобы проверить, так ли это на самом деле. Я гарантировал, что для этого календаря я был указан как «Владелец». Добавлен календарь с указанными выше 4 параметрами, но он снова не показывает календарь.

После повторного посещения тестового календаря я заметил, что это тоже было добавлено как подписка, где я указан не как

email@gmail.com (владелец)

Но:

email@gmail.com с серым выпадающим списком с надписью «вносить изменения и управлять совместным доступом» рядом с ним.

Синхронизация календаря, владельцем которого я являюсь, уже работала до того, как я включил Google Caldav API, но просто чтобы убедиться, что я включил Google Caldav API. Пока это не повлияло на результат моих попыток.

Итак, первый шаг к этой проблеме — я думаю, как создать календарь, в котором я указан как владелец, также после создания.

Но главный вопрос - это обобщенная процедура по описанию способа добавления календаря в davdroid для двухсторонней синхронизации, на который подписан мой аккаунт google, (например, календарь, которым поделился со мной другой аккаунт gmail).

Если вы знаете, как выполнить частичный шаг, обобщенную процедуру или обнаружить ошибку в моей попытке/подходе, пожалуйста, дайте мне знать, чтобы я мог адаптироваться.

Ответы (2)

Текущий метод Google API/OAuth не поддерживается DAVdroid, но он все еще возможен при использовании устаревшего формата:

https://www.google.com/calendar/dav/[yourname]@gmail.com/events имя пользователя пароль

Тем не менее, это требует компромисса. Разрешить менее безопасные приложения: ВКЛ в настройках безопасности Google.

Однако делегаты не синхронизируются.

Проверено на OnePlus 3t, Android 7.1.1, DAVdroid 1.10.1.1.

Решение состоит в том, чтобы выбрать

"войти с URL и именем пользователя"

вариант в давдроиде.

Затем вставьте полный параметр календаря, как указано во втором параметре идентификатора календаря, в «Базовый URL-адрес»:

<26 digit calendar id>@group.calendar.google.com

(Для импортированных календарей это становится: <32 digit calendar id>@IMPORT.calendar.google.com)

В:

https://www.google.com/calendar/dav/<emailaddress>/events

на <emailadress>части. Урожайность:

https://www.google.com/calendar/dav/<26 digit calender id>@group.calendar.google.com/events

(Для импортированных календарей это становится: https://www.google.com/calendar/dav/<32 digit calender id>@IMPORT.calendar.google.com/events)

И заполнение <youremail>@gmail.comи <yourpassword>.

Ноты:

  1. Когда вы нажимаете «Войти» в Davdroid, вы попадаете на экран, где отображается ваше имя пользователя, но вместо этого вы должны ввести имя календаря.
  2. Единственный календарь, для которого это не будет работать, — это унаследованный/неудаляемый календарь, прикрепленный к вашей учетной записи gmail.

Я надеюсь, что это поможет всем, кто не хочет, чтобы полная учетная запись Gmail в своем телефоне Android имела доступ ко всем данным вашего телефона, но все же хочет синхронизировать свое приложение календаря.

Вывод: Итак, первая часть о владении календарем не актуальна. Он даже работает с общими календарями.

Примечание. Если вы введете неправильный пароль, он не скажет «неверные учетные данные», а просто:

Служба калдава не найдена

РЕДАКТИРОВАТЬ:

Вот файл Excel, который частично автоматизирует процесс получения этих базовых URL-адресов календаря и ввода их в Davdroid, поскольку это может занять довольно много времени с 15+ различными календарями.

https://github.com/at-0/PublicCodeLibrary/tree/master/VBA/Google%20Davdroid%20calendar%20app%20sync