Кому принадлежат календари, созданные учетной записью службы через 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