在监视给定日历上的一系列事件的更改时,我需要多久发出一次监视请求?
我将代码放在哪里以发出监视请求?只需要做一次吗?
我下面的代码获取访问令牌,并发布了一个创建观察频道的文章,但是我不确定在哪里托管代码或我需要多久运行一次代码:
let { google } = require("googleapis");
let functions = require("firebase-functions");
let privatekey = require("./config.json");
let axios = require("axios");
let jwt = new google.auth.JWT(
privatekey.client_email,
null,
privatekey.private_key,
["https://www.googleapis.com/auth/calendar"]
);
const token = await jwt.authorize();
let headers = {
"Access-Control-Allow-Origin": "*",
"Content-Type": "application/json;charset=UTF-8",
Authorization: token.token_type + " " + token.access_token
};
let data = {
id: randomId,
type: "web_hook",
address: "https://rguc-calendars.firebaseapp.com/notifications",
params: {
ttl: 3600
}
};
axios
.post(
"https://www.googleapis.com/calendar/v3/calendars/thirdyear@rguc.co.uk/events/watch",
data,
{ headers }
)
.then(function(response) {
// success
})
.catch(function(error) {
// error
});
答案 0 :(得分:0)
Google Calendar API提供了推送通知,可让您观看 用于资源更改。您可以使用此功能来改善 应用程序的性能。它可以消除多余的 确定资源所需的网络和计算成本 如果他们改变了。每当观看的资源发生变化时,Google Calendar API会通知您的应用程序。
- 注册您的接收URL的域。
- 例如,如果您打算使用https://example.com/notifications作为接收URL,则需要注册https://example.com。
- 设置您的接收URL或“ Webhook”回调接收器。
- 这是HTTPS服务器,用于处理资源更改时触发的API通知消息。
- 为您要观看的每个资源端点设置一个通知通道。
- 通道指定通知消息的路由信息。作为频道设置的一部分,您可以标识要在其中接收通知的特定URL。每当频道的资源发生变化时,Google Calendar API都会向该URL发送一条通知消息,作为POST请求。
设置好手表后,Google会在有任何更改时通知您,您无需再次调用它。