如何为iCloud删除CalDav多输入?

时间:2018-10-25 15:29:41

标签: php calendar icloud caldav icloud-api

我们有一个iCloud日历PHP集成,该集成使用批处理CRUD方法,如此处所述:https://github.com/apple/ccs-calendarserver/blob/master/doc/Extensions/calendarserver-bulk-change.txt

看来苹果已经更新了他们的服务器,因为自从上周突然集成停止工作。我们可以解决各种更改,例如创建日历和事件。但是<MM:delete/>仍然无法使用,即使我使用的是准确的规格。

这是尸体:

$body = <<<CALENDAR
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<MM:multiput xmlns:D="DAV:"
           xmlns:MM="http://me.com/_namespace/"
           xmlns:C="urn:ietf:params:xml:ns:caldav">
       <MM:resource>
       <D:href>/12345678/calendars/calendarname/1234.ics</D:href>
       <MM:delete/>
   </MM:resource>
</MM:multiput>
CALENDAR;

枪口的请求看起来像这样:

$response = $client->request('POST', 'https://pXX-caldav.icloud.com/{$iCloudUserId}/calendars/{$calendarName}/', [
       'auth' => [
           'user@example.com',
           'third-party-pass',
       ],
       'headers' => [
           'Content-Type' => 'application/xml; charset="utf-8',
       ],
       'body' => $body,
   ]);

我得到的响应为空,它没有像以前那样返回200 OK多重响应。在iCloud中也没有任何反应。看起来像这样:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
    <ns2:multistatus 
      xmlns:ns6="http://me.com/_namespace/" 
      xmlns:ns5="http://calendarserver.org/ns/" 
      xmlns:ns2="DAV:" 
      xmlns:ns4="urn:ietf:params:xml:ns:caldav" 
      xmlns:ns3="http://apple.com/ns/ical/"
    />

奇怪的是,一个事件的常规DELETE有效。但随后,我们将不得不向服务器发送大量请求。

我现在应该如何为iCloud进行适当的多次删除?

0 个答案:

没有答案