嘿,我能够使用谷歌日历的JavaScript API对用户进行身份验证和授权。我接下来要做的是将用户订阅到公共日历。我以为我可以用日历的id来调用google.gdata.calendar.CalendarEntry构造函数,但这不起作用
var entry = google.gdata.calendar.CalendarEntry("idOfCalendar");
我还尝试使用google.gdata.atom.Id(“idOfCalendar”)创建条目ID的实例;并将其添加到CalendarEntry构造函数中。使用set方法也不起作用。
我使用InsertEntry方法添加条目,但是我收到以下错误
错误:必须提供有效的日历ID,才能在所有级别投影中将日历添加到收藏夹列表。
我可以使用google.gdata.calendar.CalendarEventQuery()
访问此日历的事件javascript的google api并没有提供很多例子,任何人都知道我的问题的答案或使用谷歌日历api的好资源?你认为我应该使用php或jason吗?
**编辑 我在Java Api link中找到了一个我想要的例子,所以我尝试了
function addSubscriptionToCalendar() {
var feedUri = "http://www.google.com/calendar/feeds/default/allcalendars/full";
var calendarEntry = new google.gdata.calendar.CalendarEntry();
calendarEntry.setId("nhl_21_%54oronto+%4daple+%4ceafs#sports@group.v.calendar.google.com");
calendarService.insertEntry(feedUri, calendarEntry, function(){alert("calendar added")}, handleError);
}
但我得到了同样的错误
答案 0 :(得分:2)
您应该使用 owncalendars Feed为经过身份验证的用户修改/添加日历条目,而不是 allcalendars 。
答案 1 :(得分:1)
听起来您的日历ID无效。第二个示例中的ID似乎是URL编码的。尝试使用解码值:
nhl_21_Toronto Maple Leafs#sports@group.v.calendar.google.com
答案 2 :(得分:0)
日历的gdata API已关闭;新方法是通过:https://developers.google.com/google-apps/calendar/v3/reference/calendarList/insert