gpt4 book ai didi

node.js - 从 Node 服务器访问 Google Calendar API

转载 作者:搜寻专家 更新时间:2023-10-31 22:21:29 24 4
gpt4 key购买 nike

出于某种原因,我很难访问 Google 日历。

我希望能够在我的 Node.js 服务器的日历中添加和删除事件。

我从文档中发现了非常矛盾的信息。

我关注了 - https://developers.google.com/identity/protocols/OAuth2ServiceAccount它很好地指导了如何获取访问 token ,但最后它似乎仅用于访问云端硬盘。

然后我关注了Google Calendar API v3 Access Not Configured其中声明您只需要一个 API key ,但这看起来好像都是从客户端完成的,所以可能有所不同?

我看了https://developers.google.com/google-apps/calendar/quickstart/nodejs也一样,但仅对日历进行简单的 API 调用似乎非常复杂。示例代码引用的文件不清楚它们的来源或结构。例如。 var TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json';

我将不胜感激关于如何实现这一目标的简单指南。

谢谢

最佳答案

我和你的情况一样。 Google 没有针对 nodejs 客户端 API 的 server-to-server 身份验证的文档。荒谬的。最后我找到了解决方案here .基本上,您需要一个服务帐户 key (通常是 JSON 文件)和 google.auth.JWT server-to-server OAuth 2.0 客户端。

let google = require('googleapis');
let privatekey = require("./privatekey.json");
// 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!");
}
});

现在只需像这样调用日历 API:

let calendar = google.calendar('v3');
calendar.events.list({
auth: jwtClient,
calendarId: 'primary'//whatever
}, function (err, response) {

});

关于node.js - 从 Node 服务器访问 Google Calendar API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44962062/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com