最近在 Google 日历中添加新事件并尝试从 Google 日历 API 获取它后,我从未获得我帐户的主日历 ID 的新事件列表。
我也尝试从开发者控制台获取:
https://developers.google.com/google-apps/calendar/v3/reference/events/list#try-it
即使存在 future 事件,它也会提供与响应相同的空项目列表。
但我能够获取其他日历列表的事件列表。例如。假期,来自 friend 的共享日历等。
最佳答案
尝试添加 singleEvents:true
根据您的要求。
我遇到了同样的问题。在我的情况下,使用 Javascript,这是有效的(返回几个单一的非重复事件):
var calendar = googleapis.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return callback(err);
}
console.log(response);
var events = response.items;
if (events.length == 0) {
console.log('No upcoming events found.');
} else {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
return callback(null, events);
}
});
但这不会(不返回任何事件,包括那些在“主要”日历上并且是单一的、非重复发生的事件)。与上述代码的唯一区别是
singleEvents
参数被注释掉,所以它的值将默认为 false
. var calendar = googleapis.calendar('v3');
calendar.events.list({
auth: auth,
calendarId: 'primary',
timeMin: (new Date()).toISOString(),
maxResults: 10,
//singleEvents: true,
orderBy: 'startTime'
}, function(err, response) {
if (err) {
console.log('The API returned an error: ' + err);
return callback(err);
}
console.log(response);
var events = response.items;
if (events.length == 0) {
console.log('No upcoming events found.');
} else {
console.log('Upcoming 10 events:');
for (var i = 0; i < events.length; i++) {
var event = events[i];
var start = event.start.dateTime || event.start.date;
console.log('%s - %s', start, event.summary);
}
return callback(null, events);
}
});
关于calendar - 谷歌日历 API 不返回事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24999541/