API Календаря Google - Могу ли я получить поле «Конфиденциальность» для события? то есть Public / Private / Default - или это недоступно - PullRequest
0 голосов
/ 25 февраля 2010

По поводу API Календаря Google, я не вижу поля "Конфиденциальность" для события? То есть Public / Private / Default.

Есть ли способ получить поле "Конфиденциальность" для события? т.е. Public / Private / Default - или это недоступно?

Ответы [ 3 ]

1 голос
/ 26 мая 2011

У меня была та же проблема, что и у вас (я хочу скрыть частные занятые события), и я не нашел решений в Интернете. getVisibility() возвращает undefined на частных и публичных мероприятиях ... я не знаю почему!

Так что это способ найти личные события, но он не возвращает массив с 'default | частный | полный '

getPrivateCopy() возвращает object, если событие является закрытым, и возвращает undefined, если нет.

Так вот мой код:

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

Это не лучшее решение, потому что этот метод не удаляет событие из ленты. Если у кого-то есть лучшее решение, мне интересно!

1 голос
/ 01 апреля 2010

Вы не можете получить поле «конфиденциальность» для события, но вам нужно отфильтровать (публичные \ личные) события по вашему запросу.

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

Вторым параметром CalendarEventQuery является видимость (private \ public)

Посмотрите на Каналы событий тоже.

0 голосов
/ 12 июля 2011

Это работает для меня. Изменение или просмотр конфиденциальности события работает.

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 - запрос который возвращает все ваши события).

Надеюсь, это поможет, - Виктор Соуза

...