【问题标题】:When should I use Outlook REST API vs Microsoft Graph API?何时应使用 Outlook REST API 与 Microsoft Graph API?
【发布时间】:2015-12-27 13:04:01
【问题描述】:

我正在开发一个需要从 Outlook.com 和 Office 365 检索和编辑日历事件的应用程序。我看到有两个选项:

  1. Outlook REST API
  2. Microsoft 图形 API

他们似乎有几乎相同的界面。我看到 Outlook REST API 支持通知(webhooks),Microsoft graph 没有?那么,该选择哪一个呢?有什么优点/缺点,为什么有两个 API?

【问题讨论】:

    标签: outlook-restapi microsoft-graph-api


    【解决方案1】:

    免责声明:我是 Microsoft 员工。

    要从 Outlook.com 检索和编辑日历事件,Microsoft Graph API 和 Outlook REST API 端点都可以使用。如果您计划在生产中使用的应用程序需要 Webhook,则需要使用 Outlook REST API v2.0 端点。 Microsoft 在 Microsoft Graph 上的预览版中提供了 Webhook,并且正在努力将它们带到一般可用性 (GA) 中,以便你将来可以在生产应用程序中使用它们。如果您的应用不需要 Webhooks,则可以使用 Microsoft Graph v1.0。

    换句话说,完全支持 Microsoft Graph 和 Outlook REST API 端点。

    现在谈谈为什么会有 2 个端点:Outlook REST API v1.0 于 2014 年 10 月推出,Microsoft 于 2015 年 11 月提供了改进的 v2.0 版本。它具有通过 API 公开的最新和最强大的 Outlook 功能。 Microsoft Graph v1.0 是我们在 2015 年 11 月推出的一个方便的端点,用于应用程序访问来自多个 Microsoft 服务(例如 Outlook、OneDrive 和 Azure Active Directory)的信息。事实上,当您向 Microsoft Graph v1.0 端点发出任何 Outlook 功能的请求时,请求会被路由到幕后的 Outlook REST API v2.0 端点。所以 API 集在设计上是相同的!

    Microsoft 正在努力缩小各个服务 API 端点(Outlook REST API、OneDrive API、AAD Graph API 等)与 Microsoft Graph 之间的任何差距,但由于两个原因会有一个小的差异。

    1. 各个服务可能具有名称相同但含义不同的实体。例如,Outlook 和 OneDrive 都有一个“文件夹”实体,但它们的含义不同。在这种情况下,Microsoft 仍然需要对 Microsoft Graph API 架构进行合理化,以使您在通过 Microsoft Graph API 时清楚地了解您正在访问的实体。 “文件夹”可用作 Outlook API v1.0 端点,它在 Outlook API v2.0 端点中重命名为 MailFolder,它也通过 Microsoft Graph API v1.0 公开。因此,在通过 Microsoft Graph 公开相同的功能或 API 之前,您可能总是会在一段时间内看到在单个服务终结点中公开的某些功能或 API。
    2. 一些横向能力;例如,Webhook 在 Microsoft Graph 中可用之前,可能会在服务终结点中更早地在 Preview 或 GA 中可用。这是因为与单个服务端点相比,Microsoft Graph API 是一个更新的端点。随着时间的推移,这个差距列表预计会减少到零。

    Microsoft 建议您使用 Microsoft Graph,只要它具有您在生产中支持您的生产应用程序所需的功能/API,或者至少在预览版中支持应用程序开发。这使您将来可以轻松扩展需要访问多个 Microsoft 服务的应用程序功能,而无需更改端点。如果您需要仅在单个服务端点中可用的功能,您可以使用单个服务端点,例如 Outlook REST API,无论是生产(v2.0)还是预览版(测试版)。

    【讨论】:

    • 您好 Venkat,感谢您的澄清。您能否告诉我是否需要一个使用 Outlook REST API v2 显示某些会议室用户日历的 Android 应用程序的 Office 365 许可证?或者它是否足够来自工作的 Outlook 帐户?我很困惑。谢谢!
    • 抱歉延迟回复。我错过了消息通知。您的 Android 应用程序的用户需要是 Office 365 用户。要注册您的应用程序,对于您的会议室方案,您需要使用 Office 365 租户注册您的应用程序。该应用程序将使用客户端凭据 OAuth 流来访问所有会议室的日历。因此,如果您在工作中使用 Office 365,您可以只使用您组织的 Office 365 帐户来注册您的应用程序。希望这会有所帮助...
    • 如果用户登录的是 Outlook.com 帐户而不是 Office365 帐户,我需要将他们重定向到哪里?它只是将我带到 365 登录页面,尝试将我重定向到 Outlook.com,然后在我尝试执行 OAuth 时将我带回 365。
    • @Both graph.microsoft.com 和 outlook.office.com/api 应该适用于 Outlook.com 帐户,一旦它已升级到 Office 365 基础结构。能否请您给我的 Twitter 帐户“@VRAyyadevara”发私信,我可以查看一下?
    • 假设我使用 Microsoft Graph 获得了 OAuth 访问令牌。我可以使用它来访问 Outlook REST API 端点吗?如果不是,我将不得不重新验证我的所有用户,以防我遇到 Microsoft Graph 的限制并想要移回 Outlook REST API 端点。
    猜你喜欢
    • 2021-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-14
    • 2020-04-30
    • 2022-08-26
    • 2021-10-30
    相关资源
    最近更新 更多