关于谷歌日历 API,我似乎看不到事件的“隐私”字段?即公共/私人/默认。
有没有办法获取事件的“隐私”字段?即公共/私人/默认 - 或者这不可用?
关于谷歌日历 API,我似乎看不到事件的“隐私”字段?即公共/私人/默认。
有没有办法获取事件的“隐私”字段?即公共/私人/默认 - 或者这不可用?
您无法获取事件的“隐私”字段,但您必须过滤查询中的(公共\私有)事件。
query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
feed = calendar_service.CalendarQuery(query)
CalendarEventQuery 的第二个参数是可见性(private\public)
也看看事件提要。
我和你有同样的问题(我想隐藏私人忙碌事件),但在网上找不到解决方案。
getVisibility()
回归undefined
私人和公共活动......我不知道为什么!
所以这是一种查找私人事件的方法,但它不会返回一个带有 'default | 私人 | 满的'
getPrivateCopy()
object
如果事件是私有的,则返回一个,否则返回undefined
。
所以有我的代码:
var private = entry.getPrivateCopy();
//if the event isn't private
if (!private) {
//doing something
}
这不是最佳解决方案,因为该方法不会从提要中删除事件。如果有人有更好的解决方案,我很感兴趣!
这个对我有用。更改或查看事件的隐私都有效。
CalendarEventFeed resultFeed = myService.query(myQuery, CalendarEventFeed.class);
// Goes through all events.
System.out.println("Updating events from " + startTime.toString() + " to " + endTime.toString() + ":\n");
for (int i = 0; i < resultFeed.getEntries().size(); i++) {
// Obtains the entry.
CalendarEventEntry entry = resultFeed.getEntries().get(i);
// Changes the visibility to private and update the entry.
//entry.getVisibility().setValue(Visibility.PRIVATE_VALUE);
//entry.update();
// Print some information in the output.
System.out.println("- " + entry.getTitle().getPlainText() + " -- Visibility is now: " + entry.getVisibility().getValue());
}
取消注释“将可见性更改为私有”注释后的行,此代码将在您的默认日历中将所有事件更改为私有(假设myService
设置正确CalendarService
并且myQuery
是返回所有事件的查询)。
希望这会有所帮助,-Vítor Souza