如何使用node.js观看Google Calendar API中的频道?

时间:2018-10-30 16:51:53

标签: node.js google-calendar-api

module.exports.hook = (req, res) => {
  resourceId = req.headers['x-goog-resource-id'];
  console.log('received signal from Google');
  console.log('listen on channel ID: ', req.headers['x-goog-channel-id']);
  console.log('and resource ID is:', req.headers['x-goog-resource-id']);
  listEvents(auth);
};

module.exports.createChannel = (id, callback) => {
  const calendar = google.calendar({ version: 'v3', auth });
  calendar.events.watch({ // post method
    auth,
    calendarId: 'primary',
    resource: {
      id,
      type: 'web_hook',
      address: `https://super.eu.ngrok.io/notifications?id=${id}`,
    },
  }, (error, result) => {
    if (error) throw error;
    callback(result);
  });
};

这是我尝试过的。我找不到任何具体信息。请帮忙。提前致谢。我是Google API的新手。

1 个答案:

答案 0 :(得分:0)

您没有提供有关遇到的错误的任何详细信息。
无论如何,我认为您应该尝试使用没有任何网址参数的地址:
https://super.eu.ngrok.io/notifications代替https://super.eu.ngrok.io/notifications?id=${id}
在URL中设置唯一标识符是没有用的。您将在监视响应中检索它。

还要检查您的身份验证对象是否有效。 它对我有用。

const response = await google.calendar({ version: 'v3', auth }).events.watch({
      calendarId: 'primary',
      resource: {
        id,
        address: 'https://super.eu.ngrok.io/notifications',
        type: 'web_hook',
        params: {
          ttl: '30000',
        },
      },
    }));

更多信息在这里: