Lee*_*Lee 5 google-calendar-api webcal outlook.com
我想在我们的 Web 应用程序中发布日历,以便客户可以使用他们最喜欢的软件(Google 日历、Outlook.com 等)订阅它。
\n我从数据库中提取数据并使用 sabre/dav 的 VObject 类创建一个 ics 文件,然后通过 url 提供它:
\n\n\nwebcal://www.server.com/calendar.php?username=john.doe&cal_id=efccd95ee22917d327e31840fbc1a97936a4
\n
这适用于 Google Calendar 和 Thunderbird,但不适用于 Outlook.com,后者显然尝试执行一些涉及 Oauth 2 的“现代身份验证”(是的,这就是它的名称)。没有错误,但也没有事件。我假设这就是阻止它工作的原因:
\n\n\nhttps://support.microsoft.com/en-gb/help/4025591/you-can-t-add-an-internet-calendar-in-outlook
\n
据我所知,这不是同步间隔问题,因为:
\n有人提出了类似的问题,但没有给出答案:
\n\n\n\n
我捕获了 Outlook 发送到我的服务器的 HTTP 请求标头,除了用户代理“Exchange”之外,它是一个标准请求,没有额外的标头。
\nMicrosoft 似乎没有准确记录 Outlook 365 的预期。
\n有一种解决方法说订阅时使用 OWA (Outlook Web Access),我认为这只适用于企业客户。
\n以下是我的服务器的响应。
\n卷曲输出:
\n< HTTP/1.1 200 OK\n< Date: Mon, 22 Jul 2019 17:52:59 GMT\n< Server: Apache/2.4.18 (Ubuntu)\n< Content-Length: 648\n< Content-Type: text/calendar;charset=UTF-8\n<\nBEGIN:VCALENDAR\nVERSION:2.0\nPRODID:-//Sabre//Sabre VObject 4.2.0//EN\nCALSCALE:GREGORIAN\nBEGIN:VEVENT\nUID:sabre-vobject-f1337426-242c-4c5f-a7af-199ff6aa68d9\nDTSTAMP:20190722T175259Z\nSUMMARY:Super Event\nDTSTART:20190716T131500\nDTEND:20190716T191500\nEND:VEVENT\nRun Code Online (Sandbox Code Playgroud)\n\xe2\x80\xa6 等
\nEND:VCALENDAR\nRun Code Online (Sandbox Code Playgroud)\n预期结果是订阅后,事件被添加到 Outlook 365 日历中,实际结果是没有添加任何事件。
\n我很乐意了解 Microsoft 使用什么机制来决定是否使用现代身份验证,然后告诉它“不”,我不想使用任何身份验证。
\n编辑:
\n我研究了使用CalDAV,最终得出的结论是,Microsoft和Google都希望集成商使用OAuth 2进行身份验证,然后通过已发布的 API 访问他们的日历(Google 可以选择为此提供CalDAV接口)。
\n| 归档时间: |
|
| 查看次数: |
1172 次 |
| 最近记录: |