我是否可以使用管理员凭据为托管域中的用户创建Google日历

时间:2010-05-26 14:58:40

标签: google-calendar-api

我使用管理员凭据进行与谷歌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让我相信它可能。

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我也在Feed网上测试了很多。我相信将“owncalendars”部分更改为“private”会使您的请求完美无缺。

所以网址应为“http://www.google.com/calendar/feeds/user@hosteddomain.com/private/full”

虽然这个会在“user@hosteddomain.com”默认日历下创建新日历,但这不是我的预期。我仍在寻找一种为普通用户创建新日历作为域管理员角色的方法。