使用服务器作为CalDAV客户端来同步日历数据和关注点

时间:2016-01-05 05:53:46

标签: node.js calendar caldav

对于日历应用程序,我想知道第三方日历事件的更改。例如,用户将iCal / Google日历添加到我的应用中。应该通知我的应用程序更改事件。经过一番研究,似乎CalDAV就是这样做的。但我并不完全了解该应用应该如何运作。

所以我的理解到目前为止:我将把我的服务器充当CalDAV客户端。用户是否会向我的应用提供登录凭据以从其日历中获取数据?我有两个问题:安全性和性能(如何同步)

安全

这听起来很有效,但是它非常不安全(因为我必须将我的登录凭据提供给一些不受信任的服务器)?似乎应该使用OAuth代替?有什么我不能正确理解的吗?

如何同步和表现

我希望收到有关日历更改的通知(例如,如果用户更新了Google日历)。类似于webhooks的东西应该是最好的。但是有这样的事吗?当我在NPM中查看一个包dav时,看起来它基于拉力。如果我不得不经常轮询更改,那可能效率很低?

我打算使用NodeJS构建服务器

1 个答案:

答案 0 :(得分:1)

Wrt安全,你是对的。对于许多(大多数)CalDAV服务器,您需要存储用户凭据(通常使用基本或摘要式身份验证)。这很糟糕。虽然某些服务器(如Google CalDAV API)支持(甚至需要)OAuth。

Wrt推,你是对的。尚未推出DAV的标准。有些服务器会像iCloud或Apple CalendarServer一样推送,但是他们使用专有协议来实现这一点,这些协议无法帮助您完成用例。所以是的,你很可能不得不轮询(确保使用sync-reports来提高效率)。虽然所需的民意调查请求并不昂贵且可以经常运行。

简而言之:您的分析是正确的。 CalDAV目前的版本主要针对纯客户端 - 服务器交互,并且对您的应用程序有不足之处。虽然它仍然是您的最佳选择: - )