Кому принадлежат календари, созданные учетной записью службы через API календаря Google и как их можно использовать?

Скажем, у меня есть аккаунт Google [email protected] с проектом project-1 (настроенным как приложение Google App Engine в консоли разработчика Google) и учетной записью службы с адресом электронной почты [email protected], принадлежащим ей.

Я знаю, как использовать эту учетную запись службы для создания календаря и управления его записями программно: я использую Клиентскую библиотеку API Google API (Java версии с учетными данными учетной записи службы), чтобы вызвать API календаря Google внутри моего приложения Google App Engine, и он делает именно это. Однако любые такие созданные календари, похоже, явно принадлежат учетной записи службы, а не моей учетной записью Google. Я делаю это из следующих соображений:

  • Когда я просматриваю календарь своего аккаунта Google в пользовательский интерфейс Google Calendar, ни один из программно созданных календарей не отображается под My calendars.
  • Когда я пытаюсь получить доступ к такому календарю, выпуская Other calendars | Add a friend´s calendar и с адресом электронной почты учетной записи службы, я могу отправить запрос, но он никогда не получает ответа (предположительно потому, что адрес электронной почты учетной записи службы не является "настоящим" адресом электронной почты).
  • Когда я создаю календари программно, я не устанавливаю CalendarListEntry#hidden, поэтому default false должен применяться.

Итак, мой вопрос заключается в следующем: как я могу получить доступ к календарям и записям календаря, которые были созданы программно с помощью API календаря Google (и Java-клиента в моем случае) в обычном веб-интерфейсе Google Calendar. Например, может ли учетная запись службы совместно использовать свои календари со своей учетной записью Google или я могу напрямую манипулировать календарями учетных записей Google с учетными данными учетной записи службы в пользовательском интерфейсе.

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

Ответы

Ответ 1

Вам придется программно обмениваться календаря, созданного учетной записью службы. Календари принадлежат учетной записи службы.

Что вы пробовали:

  • календари не отображаются в вашей учетной записи, потому что вы не имеете права доступа к ним, даже если вы являетесь администратором appengine.
  • ввод адреса электронной почты учетной записи службы не отображает календарь в пользовательском интерфейсе, поскольку адрес электронной почты учетной записи службы не является адресом электронной почты в календаре. Одна учетная запись службы может создавать несколько календарей.

Поделитесь календарем программно с вашей учетной записью, запишите уникальный идентификатор календаря и затем введите его в пользовательский интерфейс.

Ответ 2

Я думал, что вам нужно создать календарь с параметром PRN (который довольно много подменяет ваш существующий адрес учетной записи google на "владелец" в календаре)

используя параметр prn, поэтому вы сможете использовать аутентификацию учетной записи службы (например) для добавления событий в ваше имя (адрес google).

Если найдено обсуждение с использованием параметра prn