Как редактировать событие календаря Google на Android? - PullRequest
1 голос
/ 11 сентября 2011

Я хочу редактировать событие, используя Google Calendar API.В примере был код для редактирования календаря:

Entry executePatchRelativeToOriginal(Entry updated, Entry original) throws IOException {
   AtomPatchRelativeToOriginalContent content = new AtomPatchRelativeToOriginalContent();
   content.namespaceDictionary = DICTIONARY;
   content.originalEntry = original;
   content.patchedEntry = updated;
   HttpRequest request =
      requestFactory.buildPatchRequest(new GenericUrl(updated.getEditLink()), content);
   return request.execute().parseAs(updated.getClass());

И он работает, если я хочу изменить календарь, но не работает с событием редактирования: у меня есть исключение:

09-11 17:29:13.516: WARN/System.err(15787): com.google.api.client.http.HttpResponseException: 403 Forbidden

Конечно, у меня есть права редактировать событие.Кроме того, тот же метод удаления календаря работает с событием удаления.Функция удаления:

public void executeDelete(Entry entry) throws IOException {
    HttpRequest request = requestFactory.buildDeleteRequest(new GenericUrl(entry.getEditLink()));
    request.execute().ignore();
}

Есть идеи?

1 Ответ

0 голосов
/ 12 сентября 2011

Проблема решена!Я использовал HTTP PUT вместо HTTP PATCH в Atom и изменил исходное событие вместо создания другого экземпляра объекта.

Вот рабочий код:

public EventEntry executePutUpdateEvent(EventEntry updated) throws IOException {
AtomContent content = new AtomContent();
content.namespaceDictionary = DICTIONARY;
content.entry = updated;
HttpRequest request =
    requestFactory.buildPutRequest(new GenericUrl(updated.getEditLink()), content);
return request.execute().parseAs(updated.getClass());}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...