0

关于谷歌日历 API,我似乎看不到事件的“隐私”字段?即公共/私人/默认。

有没有办法获取事件的“隐私”字段?即公共/私人/默认 - 或者这不可用?

4

3 回答 3

1

您无法获取事件的“隐私”字段,但您必须过滤查询中的(公共\私有)事件。

query = gdata.calendar.service.CalendarEventQuery('default', 'private', 'full')
feed = calendar_service.CalendarQuery(query)

CalendarEventQuery 的第二个参数是可见性(private\public)

也看看事件提要

于 2010-04-01T14:24:59.473 回答
1

我和你有同样的问题(我想隐藏私人忙碌事件),但在网上找不到解决方案。 getVisibility()回归undefined私人和公共活动......我不知道为什么!

所以这是一种查找私人事件的方法,但它不会返回一个带有 'default | 私人 | 满的'

getPrivateCopy()object如果事件是私有的,则返回一个,否则返回undefined

所以有我的代码:

var private = entry.getPrivateCopy();
//if the event isn't private
if (!private) {
//doing something
}

这不是最佳解决方案,因为该方法不会从提要中删除事件。如果有人有更好的解决方案,我很感兴趣!

于 2011-05-26T10:58:02.383 回答
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并且myQuery是返回所有事件的查询)。

希望这会有所帮助,-Vítor Souza

于 2011-07-12T09:27:16.860 回答