我想混合我自己的事件,并从谷歌日历中检索给定国家/地区的假期。我有我的 API 密钥等。我从 ajax 调用中获取数据,并将事件构建为
my_events.push({title:name,
start: moment(date_begin),
end:moment(date_end)
});
完美工作。现在我想要假期。在 github 中完整日历的演示中,我看到以下代码:
googleCalendarApiKey: 'xxx',
// US Holidays
events: 'usa__en@holiday.calendar.google.com',
它可以工作(当然是用我自己的钥匙(。
但是现在,我无法理解如何看待my_events和假期。我试过my_events.push({'usa__en@holiday.calendar.google.com'}(不起作用。
我该怎么做?
另一个问题是,我不在美国,我想得到欧洲国家的假期。有谁知道法国,意大利等是否有类似的地址?我尝试了fr,fra__fr,它,ita__it等,但总是得到"notFound">
感谢您的任何指示和解释
您可以使用完整日历添加多个事件源 - 拥有事件源,然后为假日日历添加一个
这是以下代码的小提琴(你必须有一个API密钥!(https://jsfiddle.net/5x2dL5Ls/
/* Modified from http://fullcalendar.io/js/fullcalendar-2.6.0/demos/gcal.html */
$('#calendar').fullCalendar({
// THIS KEY WON'T WORK IN PRODUCTION!!!
// To make your own Google API key, follow the directions here:
// http://fullcalendar.io/docs/google_calendar/
googleCalendarApiKey: 'PUT_YOUR_API_KEY_HERE',
/* For demo purposes, our hard-coded event source information */
defaultDay: '2016-02-01',
events: [{
title: 'This is a non-google-holiday event',
start: '2016-02-16',
end: '2016-02-20'
}],
/* For demo purposes */
eventClick: function(event) {
// opens events in a popup window
window.open(event.url, 'gcalevent', 'width=700,height=600');
return false;
},
loading: function(bool) {
$('#loading').toggle(bool);
}
});
$('#addSource').click(function() {
var source = $('#holidayCalendar').val();
// $('#calendar').fullCalendar('removeEventSource', source);
$('#calendar').fullCalendar('addEventSource', source);
});
$('#removeSource').click(function() {
var source = $('#holidayCalendar').val();
$('#calendar').fullCalendar('removeEventSource', source);
});
我没有找到完整的假期来源列表的良好文档,所以我通过从 calendar.google.com 上的"浏览有趣的日历"链接中抓取数据来制作一个看起来像这样的
[/* ... */, {
"title":"Holidays in United States",
"type":"calendar",
"did":"ZW4udXNhI2hvbGlkYXlAZ3JvdXAudi5jYWxlbmRhci5nb29nbGUuY29t",
"country":"US"
}, /* ... */]
然后将该数据中的">did"附加到此 url 上,例如美国假期
https://calendar.google.com/calendar/embed?src=ZW4udXNhI2hvbGlkYXlAZ3JvdXAudi5jYWxlbmRhci5nb29nbGUuY29t
并抓取该页面的"cids":{"the_creator_is_in_here":并提取它...黑客,但得到了日历列表。
对于语言,您可以尝试将"en."更改为其他语言前缀。
例如,"日本假期"可以用英语或日语呈现:
- en.japanese#holiday@group.v.calendar.google.com
- ja.japanese#holiday@group.v.calendar.google.com