注意日历的更改以及何时发出请求

时间:2019-03-07 10:12:13

标签: react-native google-api google-calendar-api

在监视给定日历上的一系列事件的更改时,我需要多久发出一次监视请求?

我将代码放在哪里以发出监视请求?只需要做一次吗?

我下面的代码获取访问令牌,并发布了一个创建观察频道的文章,但是我不确定在哪里托管代码或我需要多久运行一次代码:

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
    });

1 个答案:

答案 0 :(得分:0)

push notifications

  

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会在有任何更改时通知您,您无需再次调用它。