重新使用Google Calendar API,我似乎无法看到事件的“隐私”字段,即公共/私人/默认。
有没有办法获取活动的“隐私”字段?即公共/私人/默认 - 或者这不可用?
答案 0 :(得分:1)
您无法获取活动的“隐私”字段,但您必须在查询中过滤(公开\私有)事件。
query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
feed = calendar_service.CalendarQuery(query)
CalendarEventQuery的第二个参数是visibility(private \ public)
也可以查看Event feeds。
答案 1 :(得分:1)
我遇到了与你相同的问题(我想隐藏私人忙碌事件),并且在网络上找不到任何解决方案。
getVisibility()
在私人和公共活动中返回undefined
...我不知道为什么!
所以这是一种查找私有事件的方法,但它不返回带有'default |的数组私人|完整的“
如果事件是私有的,则 getPrivateCopy()
返回object
,否则返回undefined
。
所以有我的代码:
var private = entry.getPrivateCopy();
//if the event isn't private
if (!private) {
//doing something
}
这不是最佳解决方案,因为该方法不会从Feed中删除事件。 如果有人有更好的解决方案,我很感兴趣!
答案 2 :(得分:0)
它对我有用。更改或查看活动的隐私都有效。
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
和{{ 1}}是一个返回所有事件的查询。)
希望这有帮助, - VítorSouza