使用 Microsoft Graph 工具包 将解决方案连接到 Microsoft Graph

构建 SharePoint 框架 解决方案时,显示 Microsoft 365 数据的最简单方法是使用 Microsoft Graph 工具包。

什么是 Microsoft Graph 工具包

Microsoft Graph 工具包 是可重复使用、与框架 无关的组件和身份认证提供程序的集合,用于访问和使用 Microsoft Graph。 这些组件开箱即可正常运行,附带的内置提供程序可以与 Microsoft Graph 进行身份验证并从之提取数据。

Microsoft Graph 工具包 可以使得在应用程序中使用 Microsoft Graph 变得轻松。 通过使用 日程 组件, 下面的示例仅使用一行代码演示已登录用户的日历事件。

在 mgt.dev 中打开此示例

为什么要在 SharePoint 框架 中使用 Microsoft Graph 工具包 ?

构建 SharePoint 框架 解决方案时,可以使用 SharPoint 框架 公开的 MSGraphClient 连接到 Microsoft Graph。 MSGraphClient 将处理你与 Microsoft Graph 的身份验证,让你能够专注于构建应用。 不过,你仍需要生成必要的 API 请求、执行这些请求、处理其响应并在应用中显示数据。

Microsoft Graph 工具包 可以进一步简化 Microsoft Graph 的使用。 它不仅处理身份验证,而且还为你与 Microsoft Graph 进行通信,并在应用中自动显示检索到的数据,从而节省了宝贵的时间。

以下示例演示如何在纯 JavaScript SharePoint 框架 Web 部件中使用工具包 的"议程"组件来显示当前用户的日历事件:

import { Providers, SharePointProvider } from '@microsoft/mgt-spfx';

// ...

export default class CalendarWebPart extends BaseClientSideWebPart<ICalendarWebPartProps> {
  protected async onInit() {
    if (!Providers.globalProvider) {
      Providers.globalProvider = new SharePointProvider(this.context);
    }
  }

  public render(): void {
    this.domElement.innerHTML = `
      <div class="${ styles.calendar }">
        <mgt-agenda></mgt-agenda>
      </div>`;
  }

  // ...
}

请注意 Microsoft Graph 工具包 是如何使用 SharePoint 框架 中的当前环境,并从 Microsoft Graph 中提取日历事件,以及在应用中将其显示为一行代码: <mgt-agenda></mgt-agenda>

在 SharePoint 框架 中使用 Microsoft Graph 工具包

Microsoft Graph 工具包 连接到 Microsoft Graph 以检索存储在Microsoft 365 中的数据。 若要访问数据,促进与 API 通信的服务主体需要具有对 Microsoft Graph 的必要 API 权限。 项目的必要权限取决于你使用的工具包 组件。 有关组件所需的 Microsoft Graph 权限的详细信息,请参阅其文档

确定 SharePoint 框架 项目所需的 API 权限列表后, 将其添加到项目配置

下一步是将 Microsoft Graph 工具包 添加到项目。 有关确切步骤,请参阅 用于 Microsoft Graph 工具包 的 SharePoint 框架 库 文档。

重要

如果在 SharePoint 框架 项目中使用 React,则需要在项目中同时安装 @microsoft/mgt-spfx 包和 @microsoft/mgt-react 包。 还需要调整从工具包 加载的类型的导入。 有关详细信息,请参阅 Microsoft Graph 工具包 的 SharePoint 框架 库文档中的React 部分

完成配置步骤后,即可在项目中使用 Microsoft Graph 工具包。

已知问题

Web 部件和扩展显示错误

使用 Microsoft Graph 工具包 的 SharePoint 框架 Web 部件和扩展显示类似于以下内容的错误:

无法对"CustomElementRegistry"执行"define": 名称"mgt-xyz"已与此注册表一起使用。

此错误是由多个 SharePoint 框架 组件尝试实例化其本身的 Microsoft Graph 工具包 副本引起的。 若要避免此问题,应将 mgt-spfx.sppkg 包部署到租户中的 SharePoint 应用程序目录,并将使用 Microsoft Graph 工具包 的解决方案更新为使用 @microsoft/mgt-spfx SharePoint 包。 有关详细信息,请参阅 Microsoft Graph 工具包 的 SharePoint 框架 库 文档。

开发人员控制台中已记录 AADSTS65001 个错误

使用 Microsoft Graph 工具包 的 SharePoint 框架 Web 部件和扩展没有按预期工作。 在开发人员控制台中,会看到类似于以下内容的错误:

AADSTS65001: 用户或管理员尚未同意使用 ID 为"f96cafc5-5fa8-4594-9815-aa169a8c6d09"的名为"SharePoint Online 客户端扩展性 Web 应用程序主体"的应用程序。 为此用户和资源发送交互式授权请求。

此错误通常是由于未向 SharePoint 框架 服务主体授予必要的Microsoft Graph API 权限导致的。 在 SharePoint 管理中心,确保已授予必要权限并将其在 API 访问页上列出。 有关详细信息,请参阅 SharePoint API 管理文档

另请参阅