【问题标题】:Google Calendar API return date, time and event name to JavascriptGoogle Calendar API 将日期、时间和事件名称返回到 Javascript
【发布时间】:2014-11-15 06:23:33
【问题描述】:

用 Google 的日历 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);
 });

这可以正确访问我的日历数据,但由于某些奇怪的原因,我无法访问活动的日期和时间,只能访问活动名称。

任何人都可以对此有所了解吗?日历共享设置是完全公开的。

【问题讨论】:

    标签: javascript jquery calendar google-api google-calendar-api


    【解决方案1】:

    您需要调用不同的端点。我成功地拨打了电话并取回了列表(包括活动名称、日期和许多其他详细信息。

    例如:

    {
    
       "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_KEY)。
    您可以从以下地址获取您的 api 密钥:https://console.developers.google.com

    如果您没有设置 API 帐户,我会创建一个并使用 Google Calendar API。它会让你的生活更轻松。请记住,您可能必须将测试服务器(本地主机?)添加到 Google 的 API 设置中才能使调用成功返回。

    如果您需要帮助,请告诉我,我最近玩过 Cal API...

    【讨论】:

    • 太棒了!谢谢朋友,感激不尽。
    • 快速跟进,在我原来的查询中我返回了10个未来的结果,按升序排列。在您的查询中,这些参数不再起作用,它只是以任何顺序返回所有事件。在 API 参考上看不到任何关于限制结果的信息,有什么想法吗?
    • 是的,您需要传递 orderBy 的参数:starttime 以及 singleEvents=true。看看这个页面:developers.google.com/google-apps/calendar/v3/reference/events/…
    • https://www.googleapis.com/calendar/v3/calendars/9p79sl2a31qgqfvjkfkupdbf8o%40group.calendar.google.com/events?orderBy=startTime&singleEvents=true&key={YOUR_API_KEY}
    • 如果由于某种原因这不起作用,尽管您的后备选项是编写一个函数来获取结果并根据需要自行对它们进行排序。这可以根据您的需要进行微调。如果你走这条路,你可能需要使用日期解析器来比较返回的不同日历事件的日期戳。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    • 2014-06-18
    相关资源
    最近更新 更多