我有一个 Java Web 应用程序,用户可以从中添加带有日期、主题和描述的事件(如任务)。我想以编程方式将这些事件发送到用户的 Outlook 日历。谁能帮助我如何实现这一目标?
PS:如果可以通过谷歌日历完成,请告诉我如何做到这一点,因为我没有被 Outlook 卡住 :)
我有一个 Java Web 应用程序,用户可以从中添加带有日期、主题和描述的事件(如任务)。我想以编程方式将这些事件发送到用户的 Outlook 日历。谁能帮助我如何实现这一目标?
PS:如果可以通过谷歌日历完成,请告诉我如何做到这一点,因为我没有被 Outlook 卡住 :)
您现在可以使用Outlook 日历 REST API并从您的 java 代码发送请求。
有关身份验证流程,请参阅此入门文档。
例如。POST 到https://outlook.office.com/api/v2.0/me/calendars/{calendar_id}/events一个 JSON 内容,例如:
{
"Subject": "Discuss the Calendar REST API",
"Body": {
"ContentType": "HTML",
"Content": "I think it will meet our requirements!"
},
"Start": {
"DateTime": "2014-02-02T18:00:00",
"TimeZone": "Pacific Standard Time"
},
"End": {
"DateTime": "2014-02-02T19:00:00",
"TimeZone": "Pacific Standard Time"
},
"Attendees": [
{
"EmailAddress": {
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
"Name": "Janet Schorr"
},
"Type": "Required"
}
]
}
Google Calendar 似乎是最佳选择,因为您可以使用Google Calendar API。有关用 Java 编写的示例,请查看此处。请务必注意GCal API 使用限制。
Outlook 似乎没有某种 API,但也许您可以使用或修改Jpst或java-libpst之类的东西。
阿尔伯特已经为谷歌做了回答。对于 Outlook,您可以使用OLE 自动化或Microsoft Graph。*
请注意,第二个选项仅适用于与 Exchange Server 通信的 Outlook 帐户。如果您通过 Outlook 访问其他邮件后端,则无法使用 Graph,只能使用 OLE。
* 2021 年 2 月更新:基于 SOAP 的 Exchange Web 服务仍然有效,但如果您开始新事物,请使用基于 REST 的 Graph API
您也可以直接使用 GCal RESTful API。Java 类实际上只是包装了 REST 调用。
如果您在 Google 日历中创建了事件,您可以从 Outlook 订阅您的 Google 日历,并将您的事件也导入 Outlook(尽管您必须为此使用 WebDAV)