无法将Google日历事件显示为fullcalendar

时间:2017-03-03 13:06:18

标签: javascript jquery calendar fullcalendar

这已被问过很多次,但我找不到任何对我有用的答案。我按照完整日历网站上的所有步骤操作,但这也不起作用。我可以看到日历,但没有事件。我已将代码写入一个名为“addCalendarEvents.js”的单独javascript文件中 这是我得到的代码和错误。
HTML:

 <link href="https://fonts.googleapis.com/css?family=Open+Sans:200,300,400" rel="stylesheet">
 <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
 <link rel='stylesheet' href='fullcalendar/fullcalendar.css' />

<script src='jquery-3.1.1.min.js'></script>

<script src='fullcalendar/lib/jquery.min.js'></script>
<script src='fullcalendar/lib/moment.min.js'></script>
<script src='fullcalendar/fullcalendar.js'></script>
<script type='text/javascript' src='fullcalendar/gcal.js'></script>
<script src='addCalendarEvent.js' type='text/javascript'></script>

使用Javascript:

    $(document).ready(function() {
    console.log('..');
    $('#calendar').fullCalendar({
         header: {
                  left: 'prev,next today',
                  center: 'title',
                  right: 'month,agendaWeek,agendaDay'
                },
        googleCalendarApiKey: 'AIzaSyAV4rl5GymKTDcHd44U7k48GgGQoeKzsuI',
        eventSources: [{ 
                   googleCalendarApiKey: 'AIzaSyAV4rl5GymKTDcHd44U7k48GgGQoeKzsuI',
                   googleCalendarId: 'vesit.network17@gmail.com',
                   className: 'fc-event-email'
                   }]

        });
    });

截图:errors with the calendar

我完全失去了。任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您指定的googleCalendarId ...@gmail.com的值看起来不像是有效的日历ID。这应该是属于所需日历存在的Google帐户的电子邮件地址。你有什么特别的想法吗? - 由于在一个人的Google帐户中可以有多个日历(例如,在不同的主题上),因此自然需要特定的日历ID!有关谷歌帐户的任何信息都与公开制作的日历概念无关,对吧?!公开访问的日历就像是附在gmail帐户上的气球。它们在空中飞得很高,每个人都可以使用。此类气球标有googleCalendarIds。

更准确地说,@group.calendar.google.com应该是最广泛使用的日历ID的最后一部分。您可以在左侧“我的日历”下的Google日历界面中找到日历ID。然后在“日历设置”下。应该确保日历已公开,以便fullCalendar.js可以请求日历数据。

fullCalendar documentation chapter on Google Calendar提供了有关googleCalendarId的详细信息以及在Google日历界面中的位置。同样,来自下载的fullCalendar zip文件的demos文件夹中的gcal.html示例的源代码提供了一个很好的基本示例。

旁注:如果您只需要参考一个日历,可以使用

简化代码
googleCalendarApiKey: '......yourAPI-key......',
events: {
            googleCalendarId: '......@group.calendar.google.com'
        }

您使用eventSources有什么特别的原因,包括语句className'fc-event-email'?这似乎使事情变得复杂。我不知道这种方法,但对于您在问题中描述的任务,它已经比平常更多的代码了。要将正常的Google Calendar API集成到fullCalendar中,上述更改是您问题的一种可能解决方案。希望,快乐的日历气球飞行,先生!