使用 Microsoft Graph API 生成交互式应用

本文介绍业务场景的常见 Microsoft Graph 集成模式,该方案需要一个可以实时创建、更新和管理通道消息的 UI。 此方案取决于Microsoft 365 服务,例如从不同团队发送和接收消息。

此方案具有以下体系结构要求:

  • 应用程序集成类型,因为它依赖于复杂的 Microsoft 365 功能。
  • 应用与 Microsoft 365 之间的双向数据流。
  • 与基于单个人工干预的自动化系统相比,数据量较低。 但是,根据用户的数量,数据量可能很高。
  • 应用上的实时数据操作,具有一些异步服务器端操作,例如将电子邮件传递到远程客户端。

此应用程序的最佳选择是使用 Microsoft Graph RESTful HTTP API。 客户端应用响应用户操作,并且可以以客户端环境控制的速度发出请求和处理数据。

下图显示了此解决方案的体系结构。

此图显示了使用 Microsoft Entra ID 进行身份验证并与 Microsoft Graph API 通信的第三方应用,这些 API 通过 HTTP 与 Teams、Planner、OneDrive 和 SharePoint 等应用进行交互。

解决方案组件

解决方案体系结构包括以下组件:

  • Azure 应用服务,它允许你以首选编程语言生成和托管 Web 应用、移动后端和 RESTful API,而无需管理基础结构。 它提供自动缩放和高可用性,支持 Windows 和 Linux,并支持从 GitHub、Azure DevOps 或任何 Git 存储库进行自动部署。
  • 需要Microsoft Entra ID来管理Microsoft Graph API 的身份验证,并支持委派权限和应用程序权限才能启用 OAuth 流。
  • SQL 数据库用于存储应用程序数据和状态;此组件是可选的。
  • Microsoft图形 RESTful API,通过单个终结点访问: https://graph.microsoft.com
  • 实现自定义逻辑的应用。

注意事项

以下注意事项支持使用此集成模式:

  • 可用性:客户端应用定期Microsoft Graph API 轮询数据。 客户端应用可以发出请求并按客户端环境控制的速度处理数据。

  • 延迟:客户端应用Microsoft图形 API 实时查询数据;但是,可能会有一些延迟,具体取决于网络条件和Microsoft Graph 服务的负载。

  • 可伸缩性:客户端应用可以通过向App 服务计划添加更多实例来水平缩放。 Microsoft Graph API 可以处理大量请求,但它们也有用于防止滥用的限制和策略。 客户端应用应实现重试逻辑和指数退避,以正常处理限制错误。

  • 解决方案复杂性:尽管此解决方案可能使用 Microsoft Graph SDK,但仍需要自定义代码来轮询和处理数据。 如果数据量很大,顺序处理可能不够,可能需要并行处理。 因此,此解决方案具有中等级别的复杂性。