API Календаря Google: Как получить CalendarEntry для Календаря по умолчанию? - PullRequest
5 голосов
/ 19 февраля 2010

Я пытаюсь получить «нормальный» URL для фида календаря пользователя по умолчанию (например, http://www.google.com/calendar/feeds/jo@gmail.com/private/full).. Я хотел бы использовать часть URL jo@gmail.com в качестве уникального идентификатора для этого календаря..

Я знаю, что могу делать что-то с календарем по умолчанию, используя 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-адрес для календаря по умолчанию.

Ответы [ 2 ]

3 голосов
/ 02 марта 2010

Вероятно, это не лучший метод, но я использую его, и он работает:

    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 #!

2 голосов
/ 05 сентября 2010

Большое спасибо!Это работает отлично!Вот мой окончательный код:


        CalendarQuery query = new CalendarQuery();
        query.Uri = new Uri("https://www.google.com/calendar/feeds/default/allcalendars/full");
        CalendarFeed resultFeed = (CalendarFeed)service.Query(query);
        int calendarIndex = 0;
        string postUristring = string.Empty;
        foreach (CalendarEntry entry2 in resultFeed.Entries)
        {
            if (entry2.Title.Text == "My Pregnancy Calendar")
            {
                string feedstring = resultFeed.Entries[calendarIndex].Id.AbsoluteUri.Substring(63);
                postUristring = "https://www.google.com/calendar/feeds/" + feedstring + "/private/full";
            }
            calendarIndex++;
        }
...