C# 获取特定的Google日历事件

C# 获取特定的Google日历事件,c#,.net,google-api,google-calendar-api,C#,.net,Google Api,Google Calendar Api,是否有一种方法可以使用Google Calendar.NET API获取单个事件,或者我必须获取所有事件并循环它们 我认为有一种方法可以使用“eid”。您应该能够在服务上使用GetEntry方法,传递与事件相关联的URI。不过,我个人还没有使用.NETAPI与谷歌日历对话 (请注意,尽管我为谷歌工作,但我是代表自己发布的-不要将此视为“谷歌官方发布”:您可以通过将EventId添加到查询url来检索单个事件,如下代码所示: CalendarService service = new Calend

是否有一种方法可以使用Google Calendar.NET API获取单个事件,或者我必须获取所有事件并循环它们


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

您应该能够在服务上使用
GetEntry
方法,传递与事件相关联的URI。不过,我个人还没有使用.NETAPI与谷歌日历对话


(请注意,尽管我为谷歌工作,但我是代表自己发布的-不要将此视为“谷歌官方发布”:

您可以通过将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”的单个事件。

您不能仅通过使用上面的查询来选择事件。上面显示的一个仅适用于默认日历。如果您有辅助日历,同样的查询也会起作用,但需要将提要URL中的emailId部分替换为要检索的辅助日历的Id

理想情况下,如果您只知道EventId,而不知道它属于哪个日历列表,则必须搜索所有日历,方法是替换上述URL中的calendarId,直到找到完全匹配的日历。 这就是我的工作方式。如果有任何其他的解决办法,我请大家发表回复


谢谢

我找不到GetEntry函数。有一个CalendarService.Get(string entryUri)函数。但是当我尝试这样做时,我得到了一个错误:“无效的URI:无法确定URI的格式。”@user685485:你能发布一个链接到你正在使用的.NET API的确切版本吗?我使用的是最新版本:那是1.8版。下面是我正在使用的一个示例Uri:@Sindre:好的。我认为GetEntry是一个仍在开发中的新版本。我希望CalendarService.Get方法能够工作,或者只是使用该URL构建一个EventQuery并将其提供给查询方法。@Jon Skeet
CalendarService service=new CalendarService(“测试”);service.setUserCredentials(“test@gmail.com“,”测试“);CalendarQuery=新的CalendarQuery(activity.Url);CalendarFeed=service.Query(查询)这返回以下错误:无效URI:无法确定URI的格式。我试着四处看看其他人在做什么,但我没有找到任何人使用此方法更新单个事件。显然,对于重复事件的异常,它也不起作用。我欢迎任何人证明我错了:-重复事件的PReg异常,它对我们有用!如果我查询,我可以将异常作为单个事件获取。为了确定这一点,它的EventId在某个地方总是有“389;”下划线。通常,如果它是一个异常,那么它的eventid将是“\u1”。这就是我们如何为重复事件读取异常的方法。这对我不起作用。我总是收到一个错误
请求执行失败:https://www.google.com/calendar/feeds/default/private/full/myeventid
有什么想法吗?