Javascript 的 Google 日历 API 问题
Posted
技术标签:
【中文标题】Javascript 的 Google 日历 API 问题【英文标题】:Google Calendar API Issue with Javascript 【发布时间】:2022-01-18 20:44:59 【问题描述】:我正在尝试使用 google Calendar API 从 G-Calendar 获取所有事件。以下代码适用于 Node.js
const google = require('googleapis');
const auth = new google.auth.JWT(
CREDENTIALS.client_email,
null,
CREDENTIALS.private_key,
SCOPES
);
const getEvents = async (dateTimeStart, dateTimeEnd) =>
try
let response = await calendar.events.list(
auth: auth,
calendarId: calendarId,
timeMin: dateTimeStart,
timeMax: dateTimeEnd,
timeZone: 'Asia/Kolkata'
);
let items = response['data']['items'];
return items;
catch (error)
console.log(`Error at getEvents --> $error`);
return 0;
;
但是因为我不能在普通浏览器 javascript 中使用“require”,所以它不起作用。
包括我
<script src="https://apis.google.com/js/api.js"></script>
和
const google = gapi;
而不是 const google = require('googleapis');
这本身有效,但无法识别
const auth = new google.auth.JWT()
不再作为函数并抛出 Uncaught TypeError: google.auth is undefined
如果有人可以提供帮助,我真的很乐意。提前谢谢大家!
【问题讨论】:
有人有提示吗? 节点是服务端JS的,你有没有试过按照Javascript Quickstart来实现? @Kessy 我知道快速入门指南。问题是,这只是用户身份验证,我需要使用服务帐户进行身份验证,因为我只想从自定义日历 javascript 前端应用程序的日历中获取所有事件,而某些用户可能没有帐户。 如果有人有想法那就太好了! 【参考方案1】:如果您需要“普通浏览器 javascript”的客户端实现,则不能使用 node.js implementation
相反,您需要创建一个流程来获取 Google 服务帐户访问令牌。有一个很好的示例说明如何使用 XHR 实现它:
https://***.com/a/29288013/11599789
【讨论】:
非常感谢您的回答。我得到了很多,到目前为止,我可以从身份验证服务中获取访问令牌,但是 我仍然难以访问我的日历。 在 node.js 中,我只会使用const calendar = google.calendar(version : "v3");
然后是calendar.events.list(...)
,但这一切都不适用于纯浏览器javascript。它无法识别第一部分,当我尝试gapi.calendar.events
时,它会抛出TypeError: gapi.calendar is undefined
。 我是否忘记导入某些内容?我使用了https://apis.google.com/js/api.js
日历 API 的浏览器 Javascript 实现非常不同。您需要以quickstart 为基础来定义gapi。
是的,但这仅适用于登录过程,不适用于服务帐户令牌。我如何将这两者结合起来?当我只是复制它并尝试运行时,它甚至都不起作用。处理不清楚的文档真的很令人沮丧。
这个答案之后你的脚本如何?你能用你现在的脚本更新问题吗?以上是关于Javascript 的 Google 日历 API 问题的主要内容,如果未能解决你的问题,请参考以下文章
javascript [userscript] [tabelog]通过发送链接将当前商店添加到Google日历(需要修复开始/结束日期)
php 使用一个用于JavaScript地图显示的Google Maps API密钥(活动日历)和用于场地地理位置查找的不同API密钥(事件
如何通过 Javascript 中的 Google Calendar API 获取 Google Calendar 中事件的位置?
需要好的例子:Javascript 中的 Google Calendar API