NodeJS 谷歌日历与服务工作人员

bkhjykvo  于 2023-03-08  发布在  Node.js
关注(0)|答案(1)|浏览(137)

尝试创建一个日历上我的个人gmail帐户从我的网站访问者的事件。然而,我似乎不能让它工作。
现在我正在

...
  status: 200,
  statusText: 'OK',
  request: {
    responseURL: 'https://www.googleapis.com/calendar/v3/calendars/primary/events?timeMin=2023-03-03T17%3A37%3A25.280Z&maxResults=10&singleEvents=true&orderBy=startTime'
  }
}
No upcoming events found.

这很奇怪,因为我在注册服务帐户的帐户下创建了一些日历条目。
我读到服务人员不能在谷歌工作区之外操作,但错误与我自己的不同,这让我认为他们已经改变了这一点。
总结一下,我想知道是否有可能从我的服务器创建日历事件到个人日历,而不需要获得工作区?
我已经使用calendarId: "primary"创建并列出了此服务工作者的日历。这些事件正在创建并列出,因此它们存在。但它们不在我的个人帐户上。同样,我的个人帐户(服务工作者在其中注册)也不显示我个人日历中的事件。

ki1q1bka

ki1q1bka1#

您无法使用服务帐户为消费者帐户创建Google日历事件。这背后的原因是您将需要为服务帐户执行DWD,然后模拟用户,但gmail.com不是您拥有的域,因此它将失败。
但是,有一种方法可以让你在没有服务帐户的情况下在消费者帐户上创建事件,它需要你遵循OAuth 2.0 for Web Server Applications的流程。
上述流程的关键部分是通过刷新令牌获取访问令牌,将刷新令牌存储在安全的地方,使用访问令牌调用google calendar api,如果过期,使用刷新令牌获取新的访问令牌等等。

相关问题