有没有一种方法可以授予我的nodejs应用程序对我的Google日历的访问权限?

时间:2020-03-30 11:33:06

标签: node.js google-api google-calendar-api google-apis-explorer google-api-nodejs-client

所以我有一个nodejs应用程序,它向某些人发送Google日历中事件的邀请,现在我正在使用我的gmail帐户和OAuth Playground来获取临时Access令牌,并且可以使用,但是该访问令牌才可用几分钟,每次我需要手动刷新Access令牌并授予对我的Google帐户日历的访问权限,这就是问题所在,现在,我想使某些事情变得动态而不干扰我。 此应用程序托管在wix中。 有什么建议 ? 谢谢

2 个答案:

答案 0 :(得分:1)

如果只允许他们访问您拥有和控制的日历,则可以使用服务帐户。

let google = require('googleapis');
let privatekey = require("./privatekey.json");
  Now let’s use the private key to configure a JWT auth client and authenticate our request.
    // configure a JWT auth client
    let jwtClient = new google.auth.JWT(
           privatekey.client_email,
           null,
           privatekey.private_key,
           ['https://www.googleapis.com/auth/calendar']);
    //authenticate request
    jwtClient.authorize(function (err, tokens) {
     if (err) {
       console.log(err);
       return;
     } else {
       console.log("Successfully connected!");
     }
    });

在Google Developer Console中创建服务帐户凭据。然后获取服务帐户的电子邮件地址,并通过Google日历网站与它共享日历。剩下的代码应该是相同的,只是用这个替换掉auth部分。

答案 1 :(得分:1)

要访问日历API,请遵循Quickstart

提供的代码会创建一个refresh token,每当旧的令牌过期时,该issues就会自动为您生成一个新的访问令牌。

请小心不要不必要地使用服务帐户,尤其是将受邀者添加到日历活动中时-当前{{3}}具有此功能。