Календарь Google - получить события из специального календаря - PullRequest
1 голос
/ 26 октября 2010

Я надеюсь, что это будет относительно легко для тех, кто знаком с API Календаря Google, выполнил поиск, но API не дает мне ответа!

Представьте, что в аккаунте Google есть3 календаря, все созданные этим пользователем.

Я пытаюсь получить события из КОНКРЕТНОГО календаря этого пользователя, используя .NET Google API, следующим образом:

    Calendar.userName = CalendarUserName;
    Calendar.userPassword = CalendarPassword;
    Calendar.feedUri = "https://www.google.com/calendar/feeds/default/private/full";

Чтоэто дает мне информацию о ВСЕХ событиях из ВСЕХ календарей, что очень хорошо, но тогда мне нужно их проанализировать (предположительно, есть способ идентифицировать, но я тоже этого не знаю).

Для меня было бы идеально, если бы я мог выбирать и запрашивать конкретный календарь и получать события только из этого.

Возможно ли это?Возможно ли это только с помощью запроса magic-cookie?

Спасибо, Дункан

Ответы [ 2 ]

2 голосов
/ 26 октября 2010

Вы читали это?

http://code.google.com/apis/calendar/data/2.0/reference.html#Event_feeds

А это?

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#RetrievingEvents

Это ключевая часть для пониманияя думаю:

Примечание. В некоторых из этих фрагментов кода показано добавление события в календарь по умолчанию или в основной календарь конкретного пользователя (подстановка адреса gmail для строки «default» в URI POST), но события также могут быть добавлены в неосновные календари.Для этого вам просто необходим идентификатор календаря, который можно получить из фида allcalendars, а также он отображается на странице настроек календаря пользовательского интерфейса.Этот идентификатор снова используется в URI канала: https://www.google.com/calendar/feeds/id/private/full.

http://code.google.com/apis/calendar/data/2.0/developers_guide_dotnet.html#RetrievingCalendars

0 голосов
/ 27 января 2011
Dim singleUseToken As String = Request.getString("token")

        Session("sessionToken") = AuthSubUtil.exchangeForSessionToken(singleUseToken, Nothing)

        Dim authFactory As GAuthSubRequestFactory = New GAuthSubRequestFactory("cl", "LeaveCalendar")
        authFactory.Token = Session("sessionToken").ToString
        Dim service As Service = New Service("cl", authFactory.ApplicationName)
        service.RequestFactory = authFactory

        Dim query As New CalendarQuery()
        query.Uri = New Uri("https://www.google.com/calendar/feeds/default/owncalendars/full")
        Dim resultFeed As AtomFeed = CType(service.Query(query), AtomFeed)  

        For Each entry As AtomEntry In resultFeed.Entries
            Response.Write("Your calendar:" & entry.Title.Text)
            Response.Write("<br>")
            Response.Write("<br>Calendar id " & entry.SelfUri.ToString.Substring(64))   
        Next

Я пробовал эту ссылку, но всегда получаю сообщение об ошибке, исключение о материалах Atom. Я немного изменил этот код, особенно эти 2 строки:

1) Dim resultFeed As AtomFeed = CType (service.Query (query), AtomFeed)

2) Для каждой записи как AtomEntry В resultFeed.Entries

Надеюсь, это поможет другим пользователям VB.NET

...