iCloud 日历删除事件请求不适用于 caldav
iCloud calendar Delete Event Request not working with caldav
我正在使用 caldav-client-v2.php 库从 iCloud 日历中读取日历事件,
GetEvents() 函数 returns 包含 ics 的日历数据数组 url 和 etag,传递给 DoDELETERequest(href,etag) 用于删除事件,
这适用于 owncloud 日历,但是当我尝试为 iCloud 执行此操作时,它不会删除事件并且 returns 错误为“错误的实体标签”标签是什么像这样
FT=-@RU=5c162550-1ccc-4821-80d6-e2fab587c348@S=1685
我尝试将 5c162550-1ccc-4821-80d6-e2fab587c348 传递给函数,但我得到了同样的错误。
caldav 服务器 returns 是错误的 etag 还是我怎样才能让它工作?
ETag 被定义为带引号的字符串,请参阅 RFC 7232, section 2.3。它说:
ETag = entity-tag
entity-tag = [ weak ] opaque-tag
weak = %x57.2F ; "W/", case-sensitive
opaque-tag = DQUOTE *etagc DQUOTE
etagc = %x21 / %x23-7E / obs-text
; VCHAR except double quotes, plus obs-text
这也是您从服务器接收 ETag 的方式。确保您发送的 ETag 与您收到的完全一样。特别是不要删除任何引号。
所以尝试传递 "FT=-@RU=5c162550-1ccc-4821-80d6-e2fab587c348@S=1685"
。
我正在使用 caldav-client-v2.php 库从 iCloud 日历中读取日历事件,
GetEvents() 函数 returns 包含 ics 的日历数据数组 url 和 etag,传递给 DoDELETERequest(href,etag) 用于删除事件, 这适用于 owncloud 日历,但是当我尝试为 iCloud 执行此操作时,它不会删除事件并且 returns 错误为“错误的实体标签”标签是什么像这样 FT=-@RU=5c162550-1ccc-4821-80d6-e2fab587c348@S=1685
我尝试将 5c162550-1ccc-4821-80d6-e2fab587c348 传递给函数,但我得到了同样的错误。 caldav 服务器 returns 是错误的 etag 还是我怎样才能让它工作?
ETag 被定义为带引号的字符串,请参阅 RFC 7232, section 2.3。它说:
ETag = entity-tag entity-tag = [ weak ] opaque-tag weak = %x57.2F ; "W/", case-sensitive opaque-tag = DQUOTE *etagc DQUOTE etagc = %x21 / %x23-7E / obs-text ; VCHAR except double quotes, plus obs-text
这也是您从服务器接收 ETag 的方式。确保您发送的 ETag 与您收到的完全一样。特别是不要删除任何引号。
所以尝试传递 "FT=-@RU=5c162550-1ccc-4821-80d6-e2fab587c348@S=1685"
。