гугл календарь api delphi - PullRequest
       20

гугл календарь api delphi

1 голос
/ 16 февраля 2012

Я программирую в DELPHI, работаю с календарем Google, и я хочу удалить событие, но я должен идти ошибка.

procedure TForm1.Button1Click (Sender: TObject);    
var    
 url: string;    
 slParam: TStringList;    
begin    
  test: ='';    
  IdHTTP2.Request.CustomHeaders.Clear;    
  IdHTTP2.Request.Connection: = 'Keep-Alive';    
  IdHTTP2.Request.ContentType: = 'application / atom xml';    
  IdHTTP2.Request.CustomHeaders.Values ['GData-Version']: = '2';    
  IdHTTP2.Request.CustomHeaders.Values ['Authorization']: = 'GoogleLogin auth =' auth;    
  IdHTTP2.HandleRedirects: = true;    
  url: =  http://www.google.com/calendar/feeds/u0qtqn2cke6pjppu1vgj5pj8js  %40group.calendar.google.com/private/full    
  slParam: = TStringList.Create;    
  slParam.LoadFromFile ('udalit.xml');    
  try    
    test: = IdHTTP2.Post (url, slParam);    
    memo1.Lines.Add (test);    
  except    
 on E: EIdHTTPProtocolException do    
   ShowMessage (E.ErrorMessage);    
  end;    
  FreeAndNil (slParam);    
end;

Вот мой xml-файл, который я пытаюсь отправить

<?xml version="1.0" encoding="UTF-8" ?>   
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:app="http://www.w3.org/2007/app" xmlns:batch="http://schemas.google.com/gdata/batch" xmlns:gCal="http://schemas.google.com/gCal/2005" xmlns:gd="http://schemas.google.com/g/2005">  
<category scheme="http://schemas.google.com/g/2005#kind" term="http://schemas.google.com/g/2005#event" />   
<entry gd:etag=""FEUDQAdBfSp7JGA6WhJV"">  
<batch:id>Delete itemD</batch:id>   
<batch:operation type="delete" />   
<id>http://www.google.com/calendar/feeds/u0qtqn2cke6pjppu1vgj5pj8js%40group.calendar.google.com/private/full/ihpe431ebmk9pa39dskjilnsko</id>   
</entry>  
</feed>

сгенерирует ошибку при отправке

[Строка 1, столбец 227] Неправильный корневой элемент, ожидается (http://www.w3.org/2005/Atom:entry), получил (http://www.w3.org/2005/Atom:feed)

1 Ответ

4 голосов
/ 16 февраля 2012

Похоже, вам не нужно отправлять файл для удаления события. Согласно Calendar API , вам просто нужно вызвать URI.

Чтобы удалить ресурс календаря, отправьте запрос DELETE на URL-адрес канала идентификатора ресурса. Включите заголовок авторизации, как описано в разделе Аутентификация.

УДАЛИТЬ https://apps -apis.google.com / a / feeds / calendar / resource / 2.0 / {имя домена} / {resourceId}

В случае успешного ответа возвращается код состояния HTTP 200 из кодов состояния API данных Google. Тело XML успешного ответа на запрос DELETE пусто.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...