获取Google日历事件

时间:2018-09-04 06:59:28

标签: javascript google-api google-calendar-api google-oauth google-api-js-client

我想知道是否有可能让我的同事进行日历活动?例如,我有此功能,只能让蓝色的人预定会议和诸如此类的东西,但我想知道如何从同事日历中获取信息?我可以将我的同事的日历添加到我的日历中,但由于它是另一种颜色或其他颜色,所以无法获取它。.您知道gmail上的日历

代码:

const timeMin = startOfMonth(new Date(2018, 7, 01));
const timeMax = endOfMonth(new Date(2018, 7, 31));

function getEvents(req, res) {
  const calendar = google.calendar({ version: "v3", auth: oauth2Client });
  return new Promise((resolve, reject) => {
    calendar.events.list(
      {
        auth: oauth2Client,
        calendarId: "primary",
        timeMin: timeMin.toISOString(),
        timeMax: timeMax.toISOString(),
        maxResults: 50,
        singleEvents: true,
        orderBy: "startTime"
      },
      (err, res) => {
        if (err) return reject(err);
        return resolve(res);
      }
    );
  })
    .then(response => {
      const { items } = response.data;
      //Log out each event> items.forEach(item => console.log(item));
      res.status(200).send(items);
    })
    .catch(console.log);
}

那么我应该如何获得不同的gcal事件,或者一次获得所有的gcal事件,或者该如何解决?如果相关,我会使用oauth2client授权该帐户。

1 个答案:

答案 0 :(得分:0)

运行该代码时,您将有权访问验证其数据的用户。如果要访问不同的帐户,则每个用户都必须对应用程序进行身份验证。如果您想同时访问,则可能无法使用JavaScript。

通常,使用服务器端编程语言,您可以让用户对其进行身份验证并保存刷新令牌,然后当他们离线时就可以访问他们的数据。然后,您可以从技术上同时访问多个用户数据。

不可能像JavaScript一样在客户端幻灯片登录中获取刷新令牌。

更新

在请求日历时,您需要提供您希望看到的日历,我们会按照当前购买时指定的日历ID进行购买

calendarId: "primary",

这是当前经过身份验证的用户的主日历。如果您有权访问其他日历,则需要将此代码更改为其他用户的日历ID。您可以在Google日历网站中找到日历ID,也可以执行calendarlist.list来显示当前用户可以访问哪些日历。