Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google日历API将日期、时间和事件名称返回到Javascript_Javascript_Jquery_Calendar_Google Api_Google Calendar Api - Fatal编程技术网

Google日历API将日期、时间和事件名称返回到Javascript

Google日历API将日期、时间和事件名称返回到Javascript,javascript,jquery,calendar,google-api,google-calendar-api,Javascript,Jquery,Calendar,Google Api,Google Calendar Api,用谷歌的日历API把我的头撞在墙上。我的日历是公开的,地址为: 9p79sl2a31qgqfvjkfkupdbf8o@group.calendar.google.com 我想访问未来10个最近的事件,并将它们的日期、时间和事件名称放到我的页面上。我正试图通过以下方式访问此文件: var url = 'http://www.google.com/calendar/feeds/9p79sl2a31qgqfvjkfkupdbf8o@group.calendar.google.com/public

用谷歌的日历API把我的头撞在墙上。我的日历是公开的,地址为:

 9p79sl2a31qgqfvjkfkupdbf8o@group.calendar.google.com
我想访问未来10个最近的事件,并将它们的日期、时间和事件名称放到我的页面上。我正试图通过以下方式访问此文件:

 var url = 'http://www.google.com/calendar/feeds/9p79sl2a31qgqfvjkfkupdbf8o@group.calendar.google.com/public/full?orderby=starttime&sortorder=ascending&max-results=10&futureevents=true&alt=json'

 $.get(url, function(data){
    console.log(data);
 });
这可以正确地访问我的日历数据,但由于某些奇怪的原因,我无法访问事件的日期和时间,只能访问事件名称


有人能解释一下吗?日历共享设置是完全公开的。

您需要调用其他端点。我成功地打了一个电话,并得到了列表(包括事件名称、日期和许多其他细节)

例如:

{

   "kind": "calendar#event",
   "etag": "\"2814404343670000\"",
   "id": "bpgo6gtet1ao8j73kn770e6r20",
   "status": "confirmed",
   "htmlLink": "https://www.google.com/calendar/event?eid=YnBnbzZndGV0MWFvOGo3M2tuNzcwZTZyMjAgOXA3OXNsMmEzMXFncWZ2amtma3VwZGJmOG9AZw",
   "created": "2014-08-04T06:25:51.000Z",
   "updated": "2014-08-05T01:29:31.835Z",
   "summary": "Startup leadership women",
   "creator": {
    "email": "qceventscalendar@gmail.com",
    "displayName": "Sean Qian"
   },
   "organizer": {
    "email": "9p79sl2a31qgqfvjkfkupdbf8o@group.calendar.google.com",
    "displayName": "Queens Collective Events",
    "self": true
   },
   "start": {
    "dateTime": "2014-08-05T18:00:00+10:00"
   },
   "end": {
    "dateTime": "2014-08-05T21:00:00+10:00"
   },
   "iCalUID": "bpgo6gtet1ao8j73kn770e6r20@google.com",
   "sequence": 0,
   "reminders": {
    "useDefault": true
   }
  } ...
要进行调用,请使用以下端点:

GET https://www.googleapis.com/calendar/v3/calendars/9p79sl2a31qgqfvjkfkupdbf8o%40group.calendar.google.com/events?key={YOUR_API_KEY}
将GET url传递到AJAX调用中(显然是用实际键切换API_键)。
您可以从以下位置获取api密钥:

如果您没有设置API帐户,我会创建一个,并使用Google日历API。这将使您的生活更加轻松。请记住,您可能需要将测试服务器(localhost?)添加到Google的API设置中,以便调用成功返回


如果您需要帮助,请告诉我,我最近一直在使用Cal API…

太棒了!谢谢你,伙计,非常感谢。快速跟进,在我最初的查询中,我以后会以升序返回10个结果。在你的查询中,这些参数不再工作,它只会以任何顺序返回所有事件。看不到有关限制结果的任何信息在API参考上,有什么想法吗?是的,您需要传递一个参数orderBy:starttime以及singleEvents=true。查看此页面:
https://www.googleapis.com/calendar/v3/calendars/9p79sl2a31qgqfvjkfkupdbf8o%40group.calendar.google.com/events?orderBy=startTime&singleEvents=true&key={你的API密钥}
如果出于某种原因,这种方法不起作用,尽管您的回退选项是编写一个函数,该函数将根据需要对结果进行排序。这可以根据您的需要进行微调。如果您采用这种方法,您可能需要使用日期分析器来比较返回的不同日历事件的日期戳。