出于某种原因,我有一个真正的困难时间访问谷歌日历。
我希望能够从我的Node.js服务器中添加和删除日历中的事件。
我从这些文件中发现了相互矛盾的信息。
我遵循了-https://developers.google.com/identity/protocols/OAuth2ServiceAccount,它给出了一个很好的指南,就如何获得访问令牌,但在最后,它似乎只是访问驱动器。
然后,我按照Google Calendar API v3 Access Not Configured,它说,你只需要一个API密钥,但这似乎是从客户端完成的,所以也许它是不同的?
我也看过https://developers.google.com/google-apps/calendar/quickstart/nodejs,但仅仅对日历进行简单的API调用似乎非常复杂。示例代码引用的文件不清楚它们来自何处或如何构造它们。例如,var TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json';
我将非常感谢关于如何实现这一点的简单指南。
谢啦,谢啦
3条答案
按热度按时间hwamh0ep1#
我和你的情况一样。Google没有nodejs客户端API的
server-to-server
身份验证文档。太荒谬了最后我找到了解决方案here。基本上,您需要一个服务帐户密钥(通常是JSON文件)和google.auth.JWT
server-to-server OAuth 2.0
客户端。字符串
现在就像这样调用日历API:
型
7d7tgy0s2#
我相信你想使用Node.js在日历中添加和删除事件。
关于
quickstart.js
使用日历API,为了使用日历API,首先,用户必须使用客户端ID,客户端密钥等检索client_secret.json
,并在API控制台启用日历API。下一步,必须使用
client_secret.json
从Google检索访问令牌和刷新令牌。Quickstart中的大部分quickstart.js
都用于检索它们。var TOKEN_PATH = TOKEN_DIR + 'calendar-nodejs-quickstart.json';
包括使用client_secret.json
检索的访问令牌和刷新令牌。可以从不具有到期时间的刷新令牌中检索具有到期时间的访问令牌。在quickstart.js
中,每次运行脚本时都会使用刷新令牌检索访问令牌。quickstart.js
中除listEvents(auth)
以外的函数用于授权。在listEvents(auth)
,可以通过使用授权检索的访问令牌来使用日历API。示例脚本
以下示例脚本用于添加和删除事件。这假设Quickstart中的步骤1和步骤2已经完成,并且使用了
quickstart.js
。对于Node.js Quickstart示例,它修改了
listEvents()
。使用此示例脚本时,请复制粘贴Node.js快速入门示例,并将listEvents()
修改如下,并添加如下addEvents()
和removeEvents()
。字符串
1.添加事件
详细信息为https://developers.google.com/google-apps/calendar/v3/reference/events/insert。
型
2.移除事件
详细信息为https://developers.google.com/google-apps/calendar/v3/reference/events/delete。
型
f2uvfpb93#
日历API在此处记录https://developers.google.com/calendar/api/guides/overview
Google有各种环境的快速入门API,可以在这里找到代码示例https://developers.google.com/calendar/api/quickstart/nodejs