Я использую учетные данные администратора для всех своих взаимодействий с API Google, и я могу получать\создавать\обновлять\удалять события от и для всех пользователей моего размещенного домена. Однако, когда я иду создавать календарь для пользователя размещенного домена, календарь создается в пространстве администраторов. В приведенном ниже примере имя пользователя Google НЕ соответствует учетной записи Google. PostUri будет выглядеть примерно так: http://www.google.com/calendar/feeds/[email protected]/owncalendars/full, а GoogleUserName — [email protected]. API создает календарь, но он находится в пространстве администратора.
CalendarService service = new CalendarService("Test");
service.setUserCredentials(GoogleUserName, GooglePassword);
CalendarEntry calendar = new CalendarEntry();
calendar.TimeZone = "America/Chicago";
calendar.Title.Text = Title;
calendar.Summary.Text = Description;
calendar.Color = Color;
calendar.Selected = true;
calendar.Hidden = false;
Uri postUri = new Uri(String.Format("http://www.google.com/calendar/feeds/{0}/owncalendars/full", GoogleAccount));
CalendarEntry createdCalendar = (CalendarEntry)service.Insert(postUri, calendar);
В документации указано, что нужно использовать учетные данные пользователей, однако большую часть времени документация не относится к размещенным доменам, и поэтому я всегда пробую и ошибаюсь при попытках взаимодействия. Тот факт, что я могу использовать все CRUD для самих событий пользователя, используя учетные данные администратора, заставляет меня поверить, что это возможно.