挿入します私はGoogleカレンダーの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();
それは素晴らしい作品....最初の時間。 2回目は、イベントIDがcalendarToCopyTo
で一意ではなくなりました(作成したばかりのイベントを削除してもう一度試しても)。私の質問は、「挿入している」イベントで新しいIdを生成させるにはどうしたらいいですか?私はこれらの行の前にcurrentEvent.Id = "";
を試しましたが、うまくいかなかったようです。
Google.Apis.Requests.RequestError要求された識別子はすでに です。 [409]エラー[メッセージ[要求された識別子が既に 存在]場所[ - ]理由[]ドメインを複製し、[グローバル]]
このexample(.NET 1)によると、私はおそらくちょうど作成する必要があります新しいEvent
オブジェクト(currentEvent
に基づいています)を挿入リクエストにパラメータとして送信します。もう1つの質問は、1つのEvent
変数(ここではcurrentEvent
)のすべてのプロパティを別のものにコピーする最も簡単な方法は何ですか?
currentEventオブジェクトからidを削除できますか?またはオブジェクトを新しいオブジェクトにクローンしてIDが削除されるようにすることはできますか?これは私にとって奇妙なバグのように聞こえる。挿入時にあなたが送信したIDを無視して、GoogleがIDを作成しているはずです。あなたが得ている正確なエラーは何ですか? – DaImTo
ええ、私はGoogleが毎回新しいイベントのIDをcalendarToCopyToに作成することを望んでいました(あなたが送信したイベントのIDに関係なく)。例外の正確なメッセージは次のとおりです: 'Google.Apis.Requests.RequestError要求された識別子が既に存在します。 [409]エラー[メッセージ[要求された識別子はすでに存在します。]場所[ - ]理由[重複]ドメイン[グローバル]] '。 https://developers.google.com/google-apps/calendar/v3/errorsでは、新しいIDを生成する必要があることを示しています。新しいIDを作成する以外に、IDを生成する方法がわかりません – derekantrican
あなたはあなたのコードの残りの部分を投稿できますか?currentEventはどうですか? – DaImTo