12

当用户将事件添加到在线日历时,它们也可以添加到 Outlook 日历(同步)。显然,使用 PHP 构建的站点无法直接与桌面应用程序集成,因此我正在寻找替代选项。

我发现的选项:

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

问题:

  1. 是否有任何付费或免费(理想情况下)可以实现此目的的 Outlook 插件?
  2. 是否有任何 Web 服务/API 可以实现这一目标?
  3. 还有其他想法或解决方案吗?
4

5 回答 5

2

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

于 2014-11-17T12:28:23.497 回答
1

您可以通过让 Outlook 订阅在线日历来做到这一点。

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

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

于 2012-03-02T12:48:39.063 回答
1

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

  1. 登录日历
  2. 在工具栏上,单击共享
  3. 选择要导出/嵌入的日历。
  4. 单击获取链接。
  5. 在显示事件详细信息下(单击创建) 注意:如果已执行第 5 步,则跳过它并单击链接到事件详细信息
  6. 复制您需要的链接并将其粘贴到所需的程序/网站上。
于 2015-05-08T09:46:57.920 回答
0

使用 EWS 交换网络服务来实现这一点。如果它是一个没有的网站。您需要在 Exchange 服务器中创建 OU 并添加一个对 DL 中的所有帐户具有读取权限的管理员用户。EWS 公开端点,您可以在其中获取日历邮件添加读取并执行各种操作。

于 2013-11-27T18:28:01.660 回答
0

以 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 数据,或者如果需要,您可以手动创建自己的解析器代码。

于 2021-10-26T08:02:16.983 回答