5

我正在尝试将事件添加到谷歌日历中的特定日历,但我只是不知道如何。这是我的代码:

        CalendarService service = new CalendarService("MyTEst");
        service.setUserCredentials("Username", "Password");
        EventEntry entry = new EventEntry();

        // Set the title and content of the entry.
        entry.Title.Text = "title";
        entry.Content.Content = "test";

        // Set a location for the event.
        Where eventLocation = new Where();
        eventLocation.ValueString = "Location";
        entry.Locations.Add(eventLocation);

        When eventTime = new When(DateTime.now, DateTime.now.AddDays(2));
        entry.Times.Add(eventTime);

        Uri postUri = new Uri("http://www.google.com/calendar/feeds/default/private/full");

        // Send the request and receive the response
        AtomEntry insertedEntry = service.Insert(postUri, entry);

谁能帮我解决这个问题?

编辑

也许我应该提一下,只有想要轻松添加集合点和注释到他的谷歌日历的站点管理员才能访问此功能,所以我使用“硬编码”值自动对其进行身份验证,所以我确定用户名和密码是好的。

4

1 回答 1

6

您的代码正在使用您指定的用户名和密码的默认 Google 日历。(IE 它使用 username@gmail.com 的默认日历)您可以看到这一点,因为 URI 指向“/feed/default/private”。如果要将事件发布到另一个日历,则用户名必须授权发布到该日历,并且您需要发布到该日历的私有 uri。

编辑:这个私人网址的默认格式是“ http://www.google.com/calendar/feeds/CALENDAR_ID/private/full

要查找日历 ID,它是 Google 日历日历设置页面中的下一个日历地址。它将与此类似:

“******************************@group.calendar.google.com”

最终 URL 将是:

编辑:“ http://www.google.com/calendar/feeds/ ***************************@group.calendar.google .com/private/full"

这将进入您的Uri postUri = new Uri();

编辑:

我的错误是我提到您还需要在 private 这个词之后包含私钥。您实际上不必这样做。我已验证我可以通过删除私钥成功发布到辅助日历。

于 2010-01-27T21:18:49.843 回答