使用Delphi删除Google日历中的事件

时间:2014-05-14 17:34:32

标签: delphi google-calendar-api idhttp

我需要删除一个事件,我所做的是将事件的ID保存在数据库中,然后使用该url thttpid.delete将其删除,但是我收到错误402禁止

Code= 'XXXXxxXXXxx' // ClientLogin code
URL:='https://www.google.com/calendar/feeds/XXXX%40gmail.com/private/full/XXXXo8aqjok24794auifouXXXX' // ID GOOGLE EVENT 


    function TForm4.DeleteGoogle(Code,URL:String): String;
    begin
          idHTTP2.IOHandler:=IdSSLIOHandlerSocketOpenSSL1;
          idHTTP2.Request.Connection  := 'Keep-Alive';
          idHTTP2.Request.ContentType := 'application/atom+xml';
          idHTTP2.Request.CustomHeaders.Values['GData-Version']:='2.0';
          idHTTP2.Request.CustomHeaders.Values['Authorization']:=('GoogleLogin Auth='+Code);
          try
            idHTTP2.Delete(URL);
          except on E: EIdHTTPProtocolException do
            idHTTP2.Delete(URL);
          end;
          //ID
             Result:=(IdHTTP2.Response.Location);
    end;

我需要删除此活动的网址是什么?。

2 个答案:

答案 0 :(得分:0)

您无法从RSS Feed中删除条目。 Feed是只读的,用于跨系统交换数据。您需要使用Google的Calendar API登录实际日历,然后从那里删除所需的条目。

Google Calendar API v1

Deleting Events


Google Calendar API v3

Events

Events: delete

答案 1 :(得分:0)

我需要添加标题'if-match'并添加标记值。这样做可以解决问题。

IdHTTP2.Request.CustomHeaders.Values['If-Match']:=tag;