若要在 SharePoint 框架 解决方案中使用 MSGraphClientV3,请在主 Web 部件文件中添加以下import子句:
import { MSGraphClientV3 } from '@microsoft/sp-http';
MSGraphClientV3 通过 Web 部件上下文中提供的 MSGraphClientFactory 公开。 若要获取 MSGraphClient 的引用,应在代码中添加:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> {
public render(): void {
// ...
this.context.msGraphClientFactory
.getClient('3')
.then((client: MSGraphClientV3): void => {
// use MSGraphClient here
});
}
// ...
}
引用 MSGraphClientV3 实例后,请使用其 JavaScript 客户端库语法开始与 Microsoft Graph 通信:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> {
public render(): void {
// ...
this.context.msGraphClientFactory
.getClient('3')
.then((client: MSGraphClientV3): void => {
// get information about the current user from the Microsoft Graph
client
.api('/me')
.get((error, response: any, rawResponse?: any) => {
// handle the response
});
});
}
// ...
}
使用 Microsoft Graph TypeScript 类型
处理 Microsoft Graph 和 TypeScript 时,可以使用 Microsoft Graph TypeScript 类型,它们有助于更快地捕获代码中的错误。 Microsoft Graph TypeScript 类型以独立包的形式提供。
import * as MicrosoftGraph from '@microsoft/microsoft-graph-types';
键入从 Microsoft Graph 中检索到的对象,例如:
export default class HelloWorldWebPart extends BaseClientSideWebPart<IHelloWorldWebPartProps> {
public render(): void {
// ...
this.context.msGraphClientFactory
.getClient('3')
.then((client: MSGraphClientV3): void => {
// get information about the current user from the Microsoft Graph
client
.api('/me')
.get((error: any, user: MicrosoftGraph.User, rawResponse?: any) => {
// handle the response
});
});
}
// ...
}
可用的权限范围
默认情况下,服务主体没有访问 Microsoft Graph 所需的显式权限。 不过,如果请求获取 Microsoft Graph 的访问令牌,将获取包含 user_impersonation 权限范围的令牌,可用于读取用户信息(即 User.Read.All)。