使用英语阅读

通过


升级到最新版本的 Microsoft Graph 工具包

本文汇总了 Microsoft Graph 工具包版本中引入的中断性变更,以及这些更改可能对解决方案产生的影响。

Microsoft Graph 工具包 v4.0

放弃对 ES5 和的支持 mgt-loader

Microsoft Graph 工具包 v4.0 放弃了对 ES5 的支持,并使用 mgt-loader 作为通过 CDN 在应用程序中导入工具包的方式。 如果使用 mgt-loader,则必须更改代码才能导入模块。

以下代码:

<script src="https://unpkg.com/@microsoft/mgt@3/dist/bundle/mgt-loader.js"></script>
<mgt-msal2-provider client-id="[CLIENT-ID]"></mgt-msal2-provider>
<mgt-login></mgt-login>

变为以下内容:

<script type="module">
  import { registerMgtComponents, Providers, Msal2Provider } from 'https://unpkg.com/@microsoft/mgt@4';
  Providers.globalProvider = new Msal2Provider({clientId: '[CLIENT-ID]'});
  registerMgtComponents();
</script>

<mgt-login></mgt-login>

删除mgt-spfx用于生成SharePoint 框架 Web 部件的包

Microsoft Graph 工具包 v4.0 删除@microsoft/mgt-spfx用于生成SharePoint 框架 Web 部件的包。 为确保 SharePoint 开发人员获得出色的体验,我们改进了 @microsoft/mgt-spfx-utils 程序包和 消除歧义 功能,以在 SPFx 和工具包之间提供无缝集成。 这种中断性变更为未来更好的开发人员体验和更多功能铺平了道路。

枚举现在是字符串联合

Microsoft Graph 工具包 v4.0 更改枚举的定义方式。 工具包现在使用字符串联合,而不是使用 enum 来定义值。 此更改提供更好的键入和更好且统一的开发人员体验,尤其是对于React开发人员。 此更改会影响 AvatarType、、ViewTypeUserTypePersonTypeGroupTypeResponseTypePersonCardInteraction。 例如,而不是像这样使用 ViewType

<Person personQuery="me" view={ViewType.twolines}></Person>

现在使用 ViewType 如下所示:

<Person personQuery="me" view="twolines"></Person>

mgt-tasks 现在是 mgt-planner

为了更好地与 Microsoft 365 命名保持一致, mgt-tasks 已重命名为 mgt-planner。 这也意味着更新 mgt-planner 的组件不再支持 data-source 切换到 Outlook 任务。

和 所需的 mgt-person 权限 mgt-planner

我们利用这个机会来简化和遵循 和 mgt-planner所需的权限的最低mgt-person特权方法。

  • 在使用 mgt-person的应用程序中,用户可能需要同意新的权限范围;有关详细信息,请参阅组件 的权限表
  • 对于写入操作, mgt-plannerGroup.ReadWrite.AllTasks.ReadWrite 更改为 ,对于读取操作,从 Group.Read.All 更改为 Tasks.Read 最小权限。

prepScopes() 现在已知道已同意的权限范围

函数 prepScopes() 现在接受一个范围数组,该数组根据当前用户当前同意的权限范围集进行检查。 如果找到任何提供的范围,则不会请求额外的范围。 如果未找到匹配项,系统会提示用户同意提供的范围数组中的第一个范围。 这有助于用户体验,并允许开发人员使用最低特权方法。

现在需要注册组件

开发人员在使用 组件时 @microsoft/mgt-components,必须为应用程序中使用的所有 Web 组件显式调用 register 函数。 从 的根 @microsoft/mgt-components 目录导入不再具有自动注册的副作用。 例如,必须使用 import { Person } from '@microsoft/mgt-components; 和 调用 registerMgtPersonComponent(),而不是使用 import { Person } from '@microsoft/mgt-components';

备注

@microsoft/mgt-react第一次使用基础 Web 组件的组件时,会自动注册这些组件。 如果未使用React组件,则不会在浏览器中自动注册组件。 当这些应用程序发出原始 Web 组件标记而不是使用包装组件时,这会导致中断性变更。 请确保使用 registerMgt{Name}Component() 函数。

MgtPersonCard 不再具有静态配置属性

此配置移动到 类, MgtPersonCardConfig 使开发人员能够在应用程序的顶层导入配置和关联 getMgtPersonCardScopes() 函数,而无需自动将完整 mgt-person-card 组件和依赖项的权重添加到其应用程序的入口文件中。 这有助于更小的捆绑包大小和更好的整体开发人员体验。

mgt-people-picker 默认情况下不显示状态

更改的默认行为mgt-people-picker,以便除非设置了 属性或 showPresence 属性,show-presence否则不会显示用户状态。 此更改有助于提高不需要显示状态和采用最低特权方法的应用程序的性能。

Microsoft Graph 工具包 v3.0

将设计框架更改为 Fluent UI Web 组件

为了保持合规性并与 Microsoft 365 的新式外观保持一致,Microsoft Graph 工具包现在使用 Fluent UI Web 组件。 建议使用 Fluent 2 设计系统更新某些样式。

为自定义组件的外观而提供的许多设计令牌都发生了变化。 有关详细信息,请参阅每个组件的文章的 CSS 自定义属性部分。

将 Microsoft Graph JS SDK 从 2.x 升级到 3.x

如果一直通过 使用 Microsoft Graph 客户端, globalProvider则它已更新为 3.x。 有关此更改可能对你产生的影响的详细信息,请参阅 Microsoft Graph JS SDK 升级指南

已从 Lit 1.x 升级到 Lit 2.x

如果已在工具包的基础上生成自定义组件,请查看 Lit 升级指南 ,详细了解此更改可能对你产生的影响。

对象结构已更改,类型可用于组件发出的事件

在此版本中,某些事件的对象结构进行了更改,以提供更好的开发人员体验。 所有事件都使用 CustomEvent<T> 泛型类型准确键入,以帮助提供高质量的代码。 有关详细信息,请参阅每个组件的文章的“事件”部分。

Teams 频道选取器中的权限已更改

MgtTeamsChannelPickerConfig已删除,Teams 通道选取器组件现在仅使用 Team.ReadBasic.AllChannel.ReadBasic.All 范围,而不是旧版 User.Read.AllGroup.Read.All 范围。 此更改使应用程序能够使用最低特权方法。

删除了多个提供程序

在此版本中,删除了多个提供程序,以确保你的应用保持安全,并为用户提供最佳体验, (对条件访问的支持、持续访问评估等) 。 删除了以下提供程序:

  • Teams 提供程序
  • Teams MSAL2 提供程序
  • MSAL 提供程序

后续步骤

  • 将解决方案更新到工具包版本 3。
  • GitHub 上报告 bug 或提出功能请求。