我的应用程序使用Firebase登录用户,他们可以访问日历,日历尤其是创建为单个普通日历来添加和删除预订。
为此,该应用拥有自己的Gmail地址。通过google API(gapi客户端)访问该应用。
为了使用户能够与日历进行交互,我发现我只能使用日历/应用程序的服务帐户。
到目前为止,我设法做到了:
现在,当我要检索google Calendar事件时,我确实获得了成功的响应,但是即使共享日历中有可用的测试事件,事件数组也为空。
响应如下:
{
"kind": "calendar#events",
"etag": "\"pqef3g4h5j6j0g\"",
"summary": "my_app_email@appspot.gserviceaccount.com",
"updated": "2019-01-15T21:14:05.029Z",
"timeZone": "UTC",
"accessRole": "owner",
"defaultReminders": [],
"items": []
}
关于Stackoverflow,有一些与此相关的主题,但是没有一个有用的信息,或者是针对Pythin / PHP的。
我希望有人可以为此提供建议以Java脚本...
答案 0 :(得分:0)
我解决了这个问题。问题是在获取事件时出现在gapi请求中。 我使用了错误的calendarId。我已将其值设置为默认的“主要”,但可以在Google日历设置>>集成日历下找到要使用的实际calendarId。在我的设置中,calendarId是关联帐户的电子邮件地址。
所以gapi请求看起来像这样:
const fetchTimeLimit = new Date(2019, 0, 1).toISOString();
let events = await gapi.client.calendar.events.list({
calendarId: 'calendar_email@gmail.com',
timeMin: fetchTimeLimit,
showDeleted: false,
singleEvents: true,
maxResults: 300,
orderBy: 'startTime'
})
.then(response => { ........etc