m-exchange-api-java-code-cover

在您的Java代码中使用微软Exchange API。

Ana NetoCompany news, Connectors, Technical Leave a Comment

你的Java代码需要使用微软Exchange服务器发送邮件。或者你需要使用Java从微软Exchange服务器读取邮件。或者你感兴趣的是日历,你想从那里获取信息,或者想同步不同的日历?如何在Java中使用微软Exchange日历API?

与任何类型的软件集成的经典方法是使用其API。因此,如果你想与微软的Exchange集成,你可能是想找到如何使用Exchange的API。

API随时间变化--微软Exchange API的一点历史

从 Java 集成到 Exchange 的最常用方法是 Exchange Web 服务(EWS)。用于 Java 的 EWS SDK 是微软 Exchange 2007 的一部分。它是一个基于 SOAP 的 API,但问题是,2018 年 7 月,微软宣布不再对其进行任何功能更新。虽然 Java 版 EWS SDK 在一段时间内会继续收到安全更新,但目前使用它启动项目毫无意义。.

另一个重要变化是,从 2020 年 10 月 13 日起,Exchange Web 服务(EWS)将完全停止对基本身份验证的支持。微软希望一切都转向 OAuth。OAuth 实际上是一个更好的选择,它甚至已被批准为国际标准(ISO/IEC)。如果您还没听说过 OAuth,可以查看 此处 进而深入 此处.虽然这是一个好的举措,但事实上,当对Basic Authentication的支持结束时,应用程序将无法再使用Basic Authentication使用EWS连接到Exchange。

那么,现在怎么办?

如果你想通过API从Java连接到微软Exchange,并且你想遵循微软的建议,你应该使用Microsoft Graph。

Microsoft Graph 早在 2015 年就建立在 Office 365 的基础上,它通过单个端点委托调用不同的 Office 365 云服务https://graph.microsoft.com/.随着时间的推移,它已经发展到现在包括访问其他微软产品,如Exchange。

Image

在 Microsoft Graph 中,您可以使用 Microsoft Graph API 或 Microsoft Graph 数据连接。无论采用哪种方式,请确保首先检查以下内容 使用条款.微软是相当具体的,你可以和不能做他们的API,所以有一个看看。

在大多数情况下,微软图形API是一种方式。我们将在下面看到更多关于它的信息。

如果你需要处理大数据,或者需要细化的同意(客户将获得审查具体的字段和任何排除,这是常规API无法做到的),你应该考虑微软图形数据连接。但是,如果你考虑微软图形数据连接,你需要注意一个重要的规则:它只会从客户的Office 365租户向相关的Azure租户发送数据。

让我们回到常规 API,因为这是最常用的选项。Microsoft Graph REST API 目前有两个版本--测试版和 v1.0。您可以查看 测试版但是,当然,对于任何严肃的开发,你应该坚持使用生产版本1.0。对于该版本,你可以查看 文件Java SDK.是的,如果你刚开始接触这个API,就会有很多的学习内容!...

然后要使用API,你首先需要注册你的应用程序。我知道这不是最令人兴奋的第一步,但如果你直接使用API,你将需要一个应用ID来代表你的应用在API调用中。为此,你需要一个工作/学校账户或一个微软账户,然后你可以选择使用注册。

- 微软应用程序注册门户网站

- Azure 活动目录管理门户(建议用于企业级应用程序)

如果你的应用程序是一个机密的客户端(服务),你必须创建一个新的应用程序密码来保护它。在你注册后,将为你的应用程序创建一个应用程序ID,并显示在你的新应用程序的属性页面上。

最后,请注意,微软Graph也一直在变化。要想了解一段时间内的变化(自2015年12月以来),你可以看一下。 变革日志.如果你想使用它,我们建议你总是检查当前生产版本的API是什么。

有没有更好的办法?

如果你不太喜欢。

- 首先与微软合作

- 不得不花大量时间研究文档

- 不得不忍受微软图形应用程序接口未来变化所带来的错误

你可能想知道是否有其他选择。是的,有一个更好的方法!

不直接使用API,你可以在你和API之间放一个薄层。我们称这层为Connect Bridge。这层的构建是为了让一切都快速高效,但又足够厚,让你永远不会接触微软Exchange甚至微软Graph API。

connect-bridge-connectors-m-exchange-api-java-code1

Connect Bridge是一个付费工具,但你可以检查一下。 Connect Bridge免费试用 可用,这样你就可以看到它是否适合你。这个工具的好处是,它确保了向前和向后的兼容性。

您构建的 Java 代码集成了 Connect Bridge,然后您的用户可以升级 Exchange,微软可以推出 API 的新版本......而您不必为此担心。Microsoft Graph API v1.0 之后的版本并不重要。您的解决方案仍然有效!您只需编写一次代码,所有的复杂性您都无需担心。.

对使用该工具的环境没有限制。你可以在以下环境下运行它

- 由连接软件管理的 Azure 内置 SaaS 平台

- 在办公场所或您自己的云服务器或虚拟机上(自行托管)

Connect Bridge的工作原理是什么?它在幕后做什么?它基本上是将标准SQL语句翻译成API调用。在你的代码中,看起来你正在使用JDBC访问一个关系型数据库(也支持ODBC和Web服务),你写了SELECT, INSERT, UPDATE和DELETE语句。你写了SELECT, INSERT, UPDATE和DELETE语句。你正在使用看起来像存储过程的东西。但这都只是一层抽象。

你没有访问微软Exchange的数据库(相信我,你不会想这么做!)。但看起来好像是这样。Connect Bridge有一个查询工具,你可以在那里测试你的(假)查询,看到(假)表及其(假)列,甚至找到一个方便的(假)存储过程。就像我说的,它感觉就像使用了一个SQL数据库一样,但它只是一个抽象的概念。

完成所有测试后,只需在代码中添加连接和查询,就像使用 JDBC 连接数据库一样......仅此而已!您现在就拥有了一个无需维护的工作解决方案。所有维护工作都由 Connect Bridge 承担。这就是为什么该工具是付费工具。我认为这是一个非常聪明的想法......一分钱一分货!

值得注意的是,这个工具还可以处理安全和认证,如果你从头开始开发,这可能会占用大量的时间。

结论

我们已经看到了如何使用Connect Bridge集成平台轻松地在Java中访问微软Exchange数据。

select_exchange-m-exchange-api-java-code

还有更多的好消息:这也是可以与微软Dynamics和微软SharePoint实现的!事实上,你可以连接到任何微软软件,连接到Salesforce,以及其他许多软件。你只需要得到Connect Bridge,这是基础的集成平台,并选择合适的连接器。

如果你想知道目前Connect Bridge有哪些连接器,可以到以下网站查询 https://www.connecting-software.com/connectors/

连接器-m-exchange-api-java-code

如果您想了解这个庞大系列中哪些是最新的连接器,请查看 Connect Bridges 的 Dynamics 365 财务和业务Dynamics 365 Business Central 连接器。

还要知道,有一些现成的产品使用Connect Bridge,完全是开箱即用的解决方案。比如说 CB Exchange Server Sync 允许你选择自定义单向或双向同步的日历,电子邮件文件夹,任务,联系人,公共文件夹,完全没有编码。

我们希望这篇文章对您有所帮助下面是我们在博客上讨论其他整合可能性的一些文章。


关于作者

Ana Neto

作者 Ana Neto, 技术顾问 于 Connecting Software。

"自 1997 年以来,我一直是一名软件工程师,最近开始喜欢写作和公开演讲。您对本文有任何问题或评论吗?欢迎在下方留言!"

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

For security, use of Google's reCAPTCHA service is required which is subject to the Google Privacy Policy and Terms of Use.