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

Ana Neto 公司新闻, 连接器, 技术方面 留下评论

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

与任何一种软件集成的经典方法就是使用它的API。所以,如果你想与微软Exchange集成,你可能是想找到如何使用Exchange的API。

API随着时间的推移而改变--微软Exchange API的一点历史记录。

从Java到Exchange最常见的集成方式曾经是Exchange网络服务(EWS)。EWS SDK for Java 作为微软Exchange 2007的一部分推出。它是一个基于SOAP的API,但问题是2018年7月微软宣布不再对它做任何功能更新。虽然EWS SDK for Java 会在一段时间内继续收到安全更新,但目前使用它启动项目是没有意义的。

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

那么,现在怎么办?

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

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

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

对于大多数情况下,微软Graph API是最佳选择。下面我们就来详细了解一下。

如果您需要处理大数据或需要细粒度的同意(客户将获得审查特定字段和任何排除项的权利,这在常规 API 中是不可能的),您应该考虑 Microsoft Graph 数据连接。但是,如果你正在考虑 Microsoft Graph 数据连接,你需要注意一个重要的规则:它只会将数据从客户的 Office 365 租户发送到相关联的 Azure 租户。

让我们回到常规API,因为这是最常见的选项。目前微软Graph REST APIs有2个版本--beta和v1.0。""",你可以看一下。 测试版但是,当然,对于任何严肃的开发,你应该坚持使用生产版本1.0。对于该版本,你可以查看 文件Java SDK.是的,如果你刚开始使用这个API,需要学习的东西很多!...

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

- 微软应用注册门户

- Azure Active Directory 管理门户(建议用于企业级应用)。

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

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

有没有更好的办法?

如果你不太喜欢。

- 首先与微软合作

- 必须花费大量时间研究文件

- 不得不忍受未来对微软图形API的修改所造成的错误。

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

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

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

你建立你的Java代码与Connect Bridge集成,然后你的用户可以升级Exchange,微软可以推出新版本的API......你就不用担心了。不管微软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数据。

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

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

如果你想知道在这个庞大的系列中哪些是最新的连接器,请看看Connect Bridges的资料。 Dynamics 365 财务和业务Dynamics 365业务中心 连接器。

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

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

发表评论

电子邮件地址不会被公开。 必填项已用*标注