【问题标题】:Fetch a specific Google Calendar event获取特定的 Google 日历活动
【发布时间】:2011-06-30 10:05:12
【问题描述】:

有没有办法使用 Google Calendar .NET API 获取单个事件,还是我必须获取所有事件并循环访问它们?

我认为有一种方法可以使用“eid”。

【问题讨论】:

    标签: c# .net google-api google-calendar-api


    【解决方案1】:

    您可以通过将 EventId 添加到查询 url 来检索单个事件,如以下代码所示:

    CalendarService service = new CalendarService("test");
    service.setUserCredentials(username, password);
    EventQuery query = new EventQuery("https://www.google.com/calendar/feeds/default/private/full/s5uhaebith4jqn864j11ljkckg");
    EventFeed feed = service.Query(query);
    

    返回的 EventFeed 将仅包含 eventId 为“s5uhaebith4jqn864j11ljkckg”的单个事件。

    【讨论】:

    • 这对我不起作用。我总是收到一个错误Execution of request failed: https://www.google.com/calendar/feeds/default/private/full/myeventid 知道吗?
    【解决方案2】:

    您应该能够在服务上使用GetEntry 方法,传入与事件关联的URI。不过,我个人并没有使用 .NET API 与 Google 日历对话。

    (请注意,虽然我为 Google 工作,但我代表自己发帖 - 不要将此视为“Google 官方帖子”:)

    【讨论】:

    • 我找不到 GetEntry 函数。有一个 CalendarService.Get(string entryUri) 函数。但是当我尝试时,我得到了这个错误:“无效的 URI:无法确定 URI 的格式。”
    • @user685485:您能否发布一个链接,指向您正在使用的 .NET API 的哪个版本?
    • 我正在使用来自code.google.com/p/google-gdata/downloads/list 的最新版本,这是 1.8 版。这是我正在使用的示例 Uri:google.com/calendar/…
    • @Sindre:好的。我认为 GetEntry 处于仍在开发中的较新版本中。我会期望 CalendarService.Get 方法能够工作,或者只是使用该 URL 构建一个 EventQuery 并将其提供给 Query 方法。
    • @Jon Skeet CalendarService service = new CalendarService("test"); service.setUserCredentials("test@gmail.com", "test"); CalendarQuery query = new CalendarQuery(activity.Url); CalendarFeed feed = service.Query(query); 这会返回以下错误:无效的 URI:无法确定 URI 的格式。 我试着环顾四周看看其他人的情况正在做,但我找不到任何人使用此方法更新单个事件。
    【解决方案3】:

    您不能仅通过使用上述查询来选择事件。上面显示的仅适用于默认日历。如果您有辅助日历,则可以使用相同的查询,但需要将提要 URL 中的 emailId 部分替换为您要检索的辅助日历的 ID。

    理想情况下,如果您只知道 EventId 而不知道它属于哪个日历列表,则必须通过替换上述 URL 中的 calendarId 来搜索您拥有的所有日历,直到获得完全匹配的结果。

    这就是我的工作方式。如果有任何其他解决方法,我要求人们发布回复。

    谢谢

    【讨论】:

    • 显然,它也不适用于重复事件的例外情况。 stackoverflow.com/questions/8928163/…我欢迎任何人证明我错了:-P
    • 重复事件的注册例外,它对我们有用!如果我查询,我可以将异常作为单个事件获取。为了识别它,它的 EventId 总是在某个地方有“_”下划线。通常,如果它是一个异常,它的 eventid 将是“_”。这就是我们如何设法读取重复事件的异常。
    猜你喜欢
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-30
    • 2011-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多