我们有一个使用批处理 CRUD 方法的 iCloud 日历 PHP 集成,详细信息如下: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;
Guzzle 请求如下所示:
$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/"
/>
奇怪的是,一个事件的常规删除是有效的。但随后我们将不得不向服务器发出大量请求。
我现在应该如何为 iCloud 进行适当的多输入删除?