C# 将事件添加到";具体的;谷歌日历与GDataAPI

C# 将事件添加到";具体的;谷歌日历与GDataAPI,c#,asp.net,gdata-api,C#,Asp.net,Gdata Api,我试图在谷歌日历中的特定日历中添加一个事件,但我不知道如何添加。这是我的密码: CalendarService service = new CalendarService("MyTEst"); service.setUserCredentials("Username", "Password"); EventEntry entry = new EventEntry(); // Set the title and content of

我试图在谷歌日历中的特定日历中添加一个事件,但我不知道如何添加。这是我的密码:

        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);
有人能帮我解决这个问题吗

编辑


也许我应该提一提,这种功能只有网站管理员才能访问,他们想轻松地将rendez vous和note添加到他的谷歌日历中,所以我自动用“硬编码”对其进行身份验证值,因此我确信用户名和密码是正确的。

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

编辑: 此专用URL的默认格式为“”

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

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

最终的URL将是:

编辑: “**************************@group.calendar.google.com/private/full”

这将出现在您的
Uri postUri=newuri()中

编辑:


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

非常感谢DanJo519。我现在就试试这个!!我试过了,但还是失败了;请求执行失败:google.com/calendar/feeds/blablabla@group.calendar.google.com/私钥-私钥/完整密钥。我不明白。我在结尾尝试了“完整”或“基本”(谷歌默认提供了基本功能,但我也尝试了完整功能,因为你是这么说的。无论如何,没有人能做到:(我已对我的答案进行了修改。您实际上不需要包含-PRIVATE_KEY。删除该选项将允许您发布,前提是您首先对日历具有写入权限。我已使用我的一个辅助日历成功测试了这一点。因此,您仍然会看到“请求执行失败”?当我说您首先需要对日历拥有写入权限时,Google允许共享辅助日历,以便多人可以向其添加事件。您需要确保要添加事件的日历可以通过您传递给CalendarService的用户名向其添加事件。您可以通过检查c谷歌日历设置的共享选项卡上的alendar权限。您设置的用户名应具有“进行更改”权限。您不必这样做。我已复制了您上面提供的代码,仅替换了用户名、密码和姿势。我的日历不共享,仅可供我进行身份验证的用户访问(谁也是用户)并且我能够成功地发布到该日历。如果您仍然存在问题,您可能需要提供此代码导致的完整异常。此外,我注意到您使用了DateTime.now而不是DateTime.now(注意大写字母N),但是这会导致编译错误,所以我猜这不是问题所在。