Google Calendar API - 我可以获取活动的“隐私”字段吗?即公共/私人/默认 - 或者这不可用

时间:2010-02-25 10:38:40

标签: google-api google-calendar-api

重新使用Google Calendar API,我似乎无法看到事件的“隐私”字段,即公共/私人/默认。

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

3 个答案:

答案 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