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的新手。
答案 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',
},
},
}));
更多信息在这里: