Google日历 - 从特定日历中获取活动

时间:2010-10-25 22:54:14

标签: .net events google-calendar-api

我希望对熟悉Google Calendar API的人来说相对容易,做了一些搜索,但API没有给我答案!

想象一下,Google帐户有3个日历,全部由该用户创建。

我正在尝试使用.NET Google API从该用户的SPECIFIC日历中获取事件,如下所示:

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

给我的是所有日历中所有事件的提要,这一切都非常好,但后来我需要解析它们(可能有一种方法可以识别,但我也不知道)。

对我来说,理想的是能够挑选并要求特定的日历,并且只能从那个日历中获取事件。

这可能吗?是否只能使用魔术cookie请求?

由于 邓肯

2 个答案:

答案 0 :(得分:2)

你读过这个吗?

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地址   对于POST中的“默认”字符串   URI),但也可以添加事件   非主要日历也是如此。去做   这个,你只需要日历ID   可以从中检索到   allcalendars feed,也显示   在日历设置页面中   UI。此ID再次用于Feed中   URI:   https://www.google.com/calendar/feeds/id/private/full

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

答案 1 :(得分:0)

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 resultsFeed AsomFeed = CType(service.Query(query),AtomFeed)

2)对于每个条目AsomEntry在resultFeed.Entries

我希望它可以帮助其他VB.NET用户