Я пытаюсь получить 'нормальный' URL для пользовательского календарного канала значения по умолчанию (например, http://www.google.com/calendar/feeds/jo@gmail.com/private/full). Я хотел бы использовать часть jo@gmail.com URL как уникальный идентификатор для того календаря.
Я знаю, что могу сделать вещи с календарем по умолчанию с помощью URL http://www.google.com/calendar/feeds/default/private/full. Однако я не могу найти способ создать CalendarEntry из того URL (я мог затем попробовать SelfUri и некоторые другие свойства, чтобы видеть, там ли 'нормальный' URL где-нибудь), или преобразовать его в 'нормальный' URL всегда.
И я знаю, что могу получить список Календарей как это:
CalendarQuery query_cal = new CalendarQuery();
query_cal.Uri = new Uri( "http://www.google.com/calendar/feeds/default/allcalendars/full" );
CalendarFeed resultFeed = (CalendarFeed) service.Query( query_cal );
foreach ( CalendarEntry entry in resultFeed.Entries )
{ ... }
Однако я не могу найти способ знать, какая из тех записей соответствует календарю по умолчанию.
Или любой другой способ получить тот нормальный URL для календаря по умолчанию.
Вероятно, это не лучший метод, но я использую его, и он работает:
feedstring = resultfeed.Entries.Item(calendarIndex).Id.AbsoluteUri.Substring(63)
postUristring = "https://www.google.com/calendar/feeds/" & feedstring & "/private/full"
Dim postUri As New Uri(postUristring)
Просто используйте calendarIndex = 0 для календаря по умолчанию. Преобразование в C # не должно быть слишком сложным!