对于日历应用程序,我想知道第三方日历事件的更改。例如,用户将iCal / Google日历添加到我的应用中。应该通知我的应用程序更改事件。经过一番研究,似乎CalDAV就是这样做的。但我并不完全了解该应用应该如何运作。
所以我的理解到目前为止:我将把我的服务器充当CalDAV客户端。用户是否会向我的应用提供登录凭据以从其日历中获取数据?我有两个问题:安全性和性能(如何同步)
安全
这听起来很有效,但是它非常不安全(因为我必须将我的登录凭据提供给一些不受信任的服务器)?似乎应该使用OAuth代替?有什么我不能正确理解的吗?
如何同步和表现
我希望收到有关日历更改的通知(例如,如果用户更新了Google日历)。类似于webhooks的东西应该是最好的。但是有这样的事吗?当我在NPM中查看一个包dav
时,看起来它基于拉力。如果我不得不经常轮询更改,那可能效率很低?
我打算使用NodeJS构建服务器
答案 0 :(得分:1)
Wrt安全,你是对的。对于许多(大多数)CalDAV服务器,您需要存储用户凭据(通常使用基本或摘要式身份验证)。这很糟糕。虽然某些服务器(如Google CalDAV API)支持(甚至需要)OAuth。
Wrt推,你是对的。尚未推出DAV的标准。有些服务器会像iCloud或Apple CalendarServer一样推送,但是他们使用专有协议来实现这一点,这些协议无法帮助您完成用例。所以是的,你很可能不得不轮询(确保使用sync-reports来提高效率)。虽然所需的民意调查请求并不昂贵且可以经常运行。
简而言之:您的分析是正确的。 CalDAV目前的版本主要针对纯客户端 - 服务器交互,并且对您的应用程序有不足之处。虽然它仍然是您的最佳选择: - )