44

我正在尝试做的事情:使用 javascript 从我的网站将事件添加到谷歌日历。

我不能做什么:为谷歌日历 api 找到一个好的教程/演练/示例。我能够找到在 v1 和 v2 api 之间来回链接的所有文档,或者 v3 api 似乎不是基于客户端的。

对于那些好奇的人,我正在开发这个网站:http: //infohost.nmt.edu/~bbean/banweb/index.php

4

2 回答 2

61

Google 提供了一个很棒的 JS 客户端库,可以与 Google 的所有基于发现的 API(例如 Calendar API v3)一起使用。我写了一篇博文,介绍了设置 JS 客户端和授权用户的基础知识。

在应用程序中启用基本客户端后,您需要熟悉 Calendar v3 的细节来编写应用程序。我建议两件事:

  • APIs Explorer将向您显示 API 中可用的调用。
  • Chrome 开发人员工具的 Javascript 控制台会在您操作时自动建议方法名称gapi.client。例如,开始输入gapi.client.calendar.events.,您应该会看到一组可能的补全(您将需要该insert方法)。

这是将事件插入 JS 的示例:

var resource = {
  "summary": "Appointment",
  "location": "Somewhere",
  "start": {
    "dateTime": "2011-12-16T10:00:00.000-07:00"
  },
  "end": {
    "dateTime": "2011-12-16T10:25:00.000-07:00"
  }
};
var request = gapi.client.calendar.events.insert({
  'calendarId': 'primary',
  'resource': resource
});
request.execute(function(resp) {
  console.log(resp);
});

希望这足以让您入门。

于 2012-07-24T00:27:59.417 回答
1

这应该可以解决问题

    //async function to handle data fetching
    async function getData () {
    //try catch block to handle promises and errors
    try {
        const calendarId = ''
        const myKey = ''
        //using await and fetch together as two standard ES6 client side features to extract the data
        let apiCall = await fetch('https://www.googleapis.com/calendar/v3/calendars/' + calendarId+ '/events?key=' + myKey)
        //response.json() is a method on the Response object that lets you extract a JSON object from the response
        //response.json() returns a promise resolved to a JSON object
        let apiResponse = await apiCall.json()
        console.log(apiResponse)
    } catch (error) {
        console.log(error)
    }
}
getData()
于 2021-07-07T23:24:59.980 回答