我使用管理员凭据进行与谷歌API的所有互动,我可以从所有托管域用户检索\ create \ update \ delete事件。但是,当我为托管域用户创建日历时,日历将在管理员空间中创建。在下面的示例中,GoogleUserName与GoogleAccount不匹配。 postUri看起来类似于: http://www.google.com/calendar/feeds/user@hosteddomain.com/owncalendars/full和GoogleUserName是admin@hosteddomain.com。 api创建了一个日历,但它位于管理员空间中。
CalendarService service = new CalendarService("Test");
service.setUserCredentials(GoogleUserName, GooglePassword);
CalendarEntry calendar = new CalendarEntry();
calendar.TimeZone = "America/Chicago";
calendar.Title.Text = Title;
calendar.Summary.Text = Description;
calendar.Color = Color;
calendar.Selected = true;
calendar.Hidden = false;
Uri postUri = new Uri(String.Format("http://www.google.com/calendar/feeds/{0}/owncalendars/full", GoogleAccount));
CalendarEntry createdCalendar = (CalendarEntry)service.Insert(postUri, calendar);
文档确实指定使用用户凭据,但文档并非特定于托管域的大部分时间,因此我在尝试交互时总是尝试尝试和错误。我可以使用管理员凭证自己使用用户事件本身的所有CRUD让我相信它可能。
答案 0 :(得分:0)
我遇到了同样的问题。我也在Feed网上测试了很多。我相信将“owncalendars”部分更改为“private”会使您的请求完美无缺。
所以网址应为“http://www.google.com/calendar/feeds/user@hosteddomain.com/private/full”
虽然这个会在“user@hosteddomain.com”默认日历下创建新日历,但这不是我的预期。我仍在寻找一种为普通用户创建新日历作为域管理员角色的方法。