所以我有一个nodejs应用程序,它向某些人发送Google日历中事件的邀请,现在我正在使用我的gmail帐户和OAuth Playground来获取临时Access令牌,并且可以使用,但是该访问令牌才可用几分钟,每次我需要手动刷新Access令牌并授予对我的Google帐户日历的访问权限,这就是问题所在,现在,我想使某些事情变得动态而不干扰我。 此应用程序托管在wix中。 有什么建议 ? 谢谢
答案 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)
提供的代码会创建一个refresh token,每当旧的令牌过期时,该issues就会自动为您生成一个新的访问令牌。
请小心不要不必要地使用服务帐户,尤其是将受邀者添加到日历活动中时-当前{{3}}具有此功能。