我曾经请求 caldav 服务器为给定用户提供所有定义的日历。这适用于 fruux/ownCloud(Sabre) 以及 GCalendar 的经典方法。
请求是这样的:
method: PROPFIND headers:Depth: 1
urlstr:https://www.google.com/calendar/dav/{theUserName}@gmail.com/
contentType:application/xml
content:
<d:propfind xmlns:d="DAV:" xmlns:cs="http://calendarserver.org/ns/" xmlns:c="urn:ietf:params:xml:ns:caldav">
<d:prop>
<d:resourcetype />
<d:displayname />
<cs:getctag />
<c:supported-calendar-component-set />
</d:prop>
</d:propfind>
迁移到 Google OAuth2 有不同的调用, ulrstr: 会像https://apidata.googleusercontent.com/caldav/v2/ https://apidata.googleusercontent.com/caldav/v2/{calid}/用户
这里的“子”必须是特定的日历 [1]
有句话说:
其中 calid 应替换为要访问的日历的“日历 ID”
目的是获取用户帐户的所有日历!所以这些电话不会有帮助。
有什么建议如何让它们进入 Google/CalDAV/V2 世界吗?
Günter
也可以看看:
[1]https://developers.google.com/google-apps/calendar/caldav/v2/guide https://developers.google.com/google-apps/calendar/caldav/v2/guide
答案评论中的链接已损坏。
所以我在这里写了一个有效的答案。
- 使用 PROPFIND 查找当前用户的主体。
PROPFIND https://apidata.googleusercontent.com/caldav/v2
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<D:current-user-principal/>
</D:prop>
</D:propfind>
2.PROPFIND calendar-home-set 包含我们在上述请求响应中获得的主要 URL。
PROPFIND https://apidata.googleusercontent.com/{user-principal-path}
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:">
<D:prop>
<C:calendar-home-set xmlns:C="urn:ietf:params:xml:ns:caldav"/>
</D:prop>
</D:propfind>
cf) 使用 REPORT 主体匹配查找日历主页集的另一种方法在我的情况下不起作用。
- PROPFIND 日历主页设置,深度标头值为 1。
PROPFIND https://apidata.googleusercontent.com/{calendar-home-set-path}
Depth: 1
<?xml version="1.0" encoding="utf-8" ?>
<D:propfind xmlns:D="DAV:"
xmlns:C="urn:ietf:params:xml:ns:caldav">
<D:prop>
<D:displayname/>
<D:resourcetype/>
<C:supported-calendar-component-set/>
</D:prop>
</D:propfind>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)