将Outlook日历集成到网站/其他



当用户将事件添加到在线日历中时,他们也可以添加到outlook日历中(同步)。显然,使用PHP构建的网站无法直接与桌面应用程序集成,所以我正在寻找其他选择。

我找到的选项:

  • 使用PHP ICAL库创建一个.ics文件,用户可以下载并安装。不是最方便用户使用的方法,可能会起作用
  • 使用SharePoint或exchange服务器,但以前没有使用Microsoft技术的经验,因此不理想
  • 使用谷歌日历和Zend库(gdata),创建在线日历并向其中添加事件。然后使用谷歌日历同步工具,用户可以将在线日历同步到outlook。但这里的问题是,所有用户都需要一个gmail帐户才能使用同步工具,当你的网站上有成千上万的用户时,这并不理想。除非我创建一个全球gmail帐户,并在该帐户上创建许多日历,如果可能的话

问题:

  1. 有没有付费或免费(理想情况下)的outlook插件可以实现这一点
  2. 有什么web服务/API可以实现这一点吗
  3. 还有其他想法或解决方案吗

Office 365附带一个REST API,可用于读取/写入日历。这里有一些相关文档。http://msdn.microsoft.com/office/office365/api/calendar-rest-operations

或者,EWS托管API可能能够帮助您:http://msdn.microsoft.com/en-us/library/office/dd633696(v=exchg.80).aspx和http://msdn.microsoft.com/en-us/library/office/dd633702(v=exchg.80).aspx

您可以通过让outlook订阅在线日历来实现这一点。

使用phpicalendar,您可以让其他客户端订阅您的日历(此处)

您可能需要调整生成的.ics文件,以包括X-PUBLISHED-TTL-订阅日历的推荐更新间隔

要获得日历事件,请执行以下步骤:

  1. 登录日历
  2. 在工具栏上,单击"共享"
  3. 选择要导出/嵌入的日历
  4. 单击获取链接
  5. 在"显示事件详细信息"下(单击"创建")注意:如果已经执行了第5步,只需跳过它,然后单击"链接到事件详细信息"
  6. 复制您需要的链接,并将其粘贴到所需的程序/网站上

使用EWS交换Web服务来实现这一点。如果是一个用户数量为的网站,则您需要在exchange服务器中创建OU,并添加一个对DL中的所有帐户都具有读取权限的管理员用户。EWS公开了端点,在这些端点中,u可以获取日历邮件、添加读取并执行所有类型的操作。

基于Rahul的想法,但使用不同的方法-微软提供了类似于;RSS馈送";每次获得URL时都会自动更新,除非它是";ICS";事件数据:

  1. 打开Outlook Web Access(OWA),例如,如果您使用的是microsoft.com帐户,则URL可能为https://outlook.live.com/calendar/(如果您使用其他Microsoft 365帐户,URL可能会有所不同)

  2. 在右上角,单击设置图标

  3. 单击查看所有Outlook设置

  4. 单击日历>共享日历>在"发布日历"下,选择日历,然后在"选择权限"下,根据需要进行选择,然后单击"发布"

  5. 它将为您提供HTML和ICS链接。复制ICS链接URL。

  6. 使用您最喜欢的编程语言/工具/软件定期使用GET方法对步骤5中获得的URL进行HTTPS请求(使用CURL或AJAX或其他HTTP获取)。您将返回一组ICS格式的日历数据。根据需要使用它。您可以从其他地方找到一些预先编写的代码,为您解析ICS数据,或者如果必须的话,您可以手动创建自己的解析器代码。

最新更新