如何使用CURL删除Google议程中的事件?

时间:2012-03-22 07:14:18

标签: php curl google-calendar-api

我正在使用一个脚本来创建类似的事件:

$data = "<entry xmlns='http://www.w3.org/2005/Atom' " . 
            "xmlns:gd='http://schemas.google.com/g/2005'>\n" . 
            "<category scheme='http://schemas.google.com/g/2005#kind' " . 
            "term='http://schemas.google.com/g/2005#event'></category>\n" . 
            "<title type='text'>event title</title>\n" . 
            "<content type='text'>event description</content>\n" . 
            "<gd:transparency value='http://schemas.google.com/g/2005#event.opaque'>" . 
            "</gd:transparency>\n" . 
            "<gd:eventStatus value='http://schemas.google.com/g/2005#event.confirmed'>" . 
            "</gd:eventStatus>\n" . 
            "<gd:where valueString='event address'></gd:where>" . 
            "<gd:when startTime='$date"."T$timestart:00.000+01:00' endTime='$date"."T$timeend:00.000+01:00'></gd:when>\n" . 
            "</entry>\n";

curl_setopt($cs, CURLOPT_URL, "https://www.google.com/calendar/feeds/default/private/full");
curl_setopt($cs, CURLOPT_POST, 1);
curl_setopt($cs,CURLOPT_HTTPHEADER,array('Accept: text/html,application/xhtml+xml,application/xml'));
curl_setopt($cs, CURLOPT_HEADER, 1);
curl_setopt($cs, CURLOPT_HTTPHEADER, $httpheader);
curl_setopt($cs, CURLOPT_POSTFIELDS, $data);

我可以获取事件ID,但我不知道如何删除它。

由于

1 个答案:

答案 0 :(得分:0)

我假设您正在使用V2 API,因此根据documentation

  

要删除事件,首先要检索要删除的事件,   然后您向事件的编辑URL发送DELETE请求。

因此,首先执行GET请求以获取所需的事件,从XML中获取编辑链接,例如

<link rel='edit' type='application/atom+xml' href='https://www.google.com/calendar/feeds/jo@gmail.com/private-magicCookie/full/entryID'></link>

然后使用CURL对该URL执行DELETE请求。要了解有关详情,请参阅this page,其中说明了如何使用CURLOPT_CUSTOMREQUEST选项。