«Элемент должен содержать значение для атрибута id» в Google Calendars API - PullRequest
0 голосов
/ 20 мая 2011

Я получаю исключение при использовании API Календаря Google Java, из-за которого у меня не получается ни головы, ни хвоста.То, что я делаю, - это создание соединителя с Календарем Google, который вставляет события.Некоторые из этих событий повторяются, а некоторые имеют исключения из шаблона повторения.Я был очень успешным в создании событий и повторяющихся событий, но у меня возникают эти проблемы при попытке сделать исключения.

Код, который я использую:

CalendarEventEntry gglAppt = new CalendarEventEntry();
OriginalEvent originallink = new OriginalEvent();
originallink.setOriginalId(repeatingEvent.getIcalUID());
When originalWhen = new When();

originalWhen.setStartTime(DateTime.parseDate("2011-05-01"));
originallink.setOriginalStartTime(originalWhen);

When exceptionWhen = new When();
exceptionWhen.setStartTime(DateTime.parseDate("2011-05-10"));

gglAppt.setOriginalEvent(originallink);
gglAppt.setStatus(EventStatus.CANCELED);
gglAppt.addTime(exceptionWhen);

try {
    //I can vouch for this line, it works elsewhere in the code.
    //CalendarServiceManager is a custom class if you didn't guess ;-)
    CalendarServiceManager.getInstance().addNewEvent(gglAppt, http://www.google.com/calendar/feeds/default/calendars/testemail%40gmail.com);
} catch (IOException e) {
    e.printStackTrace();
} catch (ServiceException e) {
    e.printStackTrace();
}

Исключение составляет:

com.google.gdata.util.InvalidEntryException: Bad Request
Element must contain value for attribute id
at com.google.gdata.client.http.HttpGDataRequest.handleErrorResponse(HttpGDataRequest.java:594)
at com.google.gdata.client.http.GoogleGDataRequest.handleErrorResponse(GoogleGDataRequest.java:563)
at com.google.gdata.client.http.HttpGDataRequest.checkResponse(HttpGDataRequest.java:552)
at com.google.gdata.client.http.HttpGDataRequest.execute(HttpGDataRequest.java:530)
at com.google.gdata.client.http.GoogleGDataRequest.execute(GoogleGDataRequest.java:535)
at com.google.gdata.client.Service.insert(Service.java:1409)
at com.google.gdata.client.GoogleService.insert(GoogleService.java:599)
at com.testapp.google.CalendarServiceManager.addNewEvent(CalendarServiceManager.java:138)
at com.testapp.google.GoogleAdapter.dealWithExceptions(GoogleAdapter.java:581)
...etc

Мое понимание того, что я видел вокруг паутин, заключается в том, чтоID атрибута - это то, что вы устанавливаете для объектов Google, чтобы отслеживать их.Я не знаю, где установить идентификатор атрибута, и меня удивляет, почему мне не пришлось устанавливать идентификатор атрибута ни для одного из других событий, которые я отправил.

Что это за исключение, которое выдается?Что это значит и что мне с этим делать?

Любая помощь будет принята с благодарностью, как всегда.

1 Ответ

0 голосов
/ 20 мая 2011

Нашел ответ на мой вопрос здесь:

http://code.google.com/apis/calendar/community/forum.html?place=topic%2Fgoogle-calendar-help-dataapi%2FvD6xahZq8ms%2Fdiscussion

Оказывается, повторение У события еще не было идентификатора.Я только что создал его и отправил на сервер, но не обновил локальный объект тем, который был возвращен с сервера;тот с идентификатором.

...