Я использую Google Calendar API и я скопировать события из одного календаря в другой, как это:Принуждение новый идентификатор на событие вставки
CalendarService service = new CalendarService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = this.ApplicationName
});
CalendarListResource.ListRequest calRequest = service.CalendarList.List();
calRequest.MinAccessRole = CalendarListResource.ListRequest.MinAccessRoleEnum.Owner;
CalendarList calendars = calRequest.Execute();
CalendarListEntry selectedCalendar = calendar.Items[0];
EventsResource.ListRequest eventRequest = service.Events.List(selectedCalendar.Id);
eventRequest.TimeMin = DateTime.Now;
eventRequest.ShowDeleted = false;
eventRequest.SingleEvents = true;
eventRequest.MaxResults = 50;
eventRequest.OrderBy = EventsResource.ListRequest.OrderByEnum.StartTime;
Events events = eventRequest.Execute();
Event currentEvent = events.Items[0];
EventsResource.InsertRequest copyRequest = service.Events.Insert(currentEvent, calendarToCopyTo.Id);
copyRequest.Execute();
Он отлично работает .... первая время. Во второй раз он выдает ошибку, потому что идентификатор события больше не уникален на calendarToCopyTo
(даже если я удалю только что созданное событие и повторю попытку). Мой вопрос: как я могу заставить новый идентификатор быть сгенерированным в событии, которое я «вставляю»? Я пробовал currentEvent.Id = "";
перед этими строками, но это, похоже, не сработало.
Google.Apis.Requests.RequestError Запрошен идентификатор уже существует. [409] Ошибки [Сообщение [Запрашиваемый идентификатор уже существует] Местоположение [-.] Причина [дубликат] Домен [глобальный]]
Согласно этому example (в .NET один), я, вероятно, следует просто создать новый объект Event
(основанный на currentEvent
), затем отправьте его как параметр в запрос Insert. Итак, еще один вопрос: какой самый простой способ скопировать все свойства из одной переменной Event
(здесь currentEvent
) в другую?
Вы можете удалить идентификатор из объекта currentEvent? или, возможно, клонировать объект в новый объект, чтобы удалить его? это звучит как странная ошибка для меня. Google должен создавать идентификатор, когда после вставки я бы подумал и проигнорировал любой отправленный вами идентификатор.Какая именно ошибка вы получаете, пожалуйста? – DaImTo
Да, я надеялся, что Google создаст новый идентификатор нового события в 'calendarToCopyTo' каждый раз (независимо от Идентификатора события, которое вы отправляете). Точное сообщение об исключении: «Google.Apis.Requests.RequestError. Запрошенный идентификатор уже существует. [409] Ошибки [Сообщение [запрошенный идентификатор уже существует.] Местоположение [-] Причина [дубликат] Домен [глобальный]] '. https://developers.google.com/google-apps/calendar/v3/errors сообщает мне, что мне нужно создать новый идентификатор, и я не уверен, как это сделать (кроме создания нового объекта Event) – derekantrican
Можете ли вы опубликовать остальную часть своего кода, как вы действуете? – DaImTo