Использование MSGraphClientV3 для подключения к Microsoft Graph
При создании SharePoint Framework решений вы можете легко подключиться к Microsoft Graph с помощью MSGraphClientV3.
Обзор MSGraphClient
MSGraphClientV3 — это новый HTTP-клиент, представленный в SharePoint Framework версии 1.15.0, который упрощает подключение к Microsoft Graph в SharePoint Framework решениях. MSGraphClientV3 содержит оболочку клиентской библиотеки JavaScript версии 3 для Microsoft Graph, предоставляя разработчикам те же возможности, что и при использовании клиентской библиотеки в других клиентских решениях.
MSGraphClientV3 заменяет MSGraphClient, появившийся в SharePoint Framework версии 1.6.0. MSGraphClient упаковал клиентскую библиотеку JavaScript для Microsoft Graph версии 1.
Хотя вы можете использовать клиентскую библиотеку JavaScript Microsoft Graph в решении напрямую, MSGraphClientV3 обрабатывает проверку подлинности в Microsoft Graph, что позволяет сосредоточиться на создании решения.
Использование класса MSGraphClient в решении
Примечание.
MSGraphClientV3 доступен только в проектах, созданных с использованием SharePoint Framework версии 1.15.0 и более поздних версий. Хотя MSGraphClientV3 описывается в этой статье с помощью клиентской веб-части, ее также можно использовать в SharePoint Framework extensions.
Примечание.
Сейчас единый вход для MSGraphClientV3 доступен только в SharePoint Online. Вы можете использовать клиент для локальных разработок, но пользователям потребуется снова войти в веб-часть.
Чтобы использовать MSGraphClientV3 в решении SharePoint Framework, добавьте следующее
import
предложение в основной файл веб-части:import { MSGraphClientV3 } from '@microsoft/sp-http';
MSGraphClientV3 предоставляется через 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 , начните взаимодействовать с Microsoft Graph с помощью синтаксиса клиентской библиотеки JavaScript:
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 }); }); } // ... }
Использование типов TypeScript для Microsoft Graph
При работе с Microsoft Graph и TypeScript вы можете использовать типы TypeScript для Microsoft Graph, которые помогут вам быстрее обнаруживать ошибки в коде. Типы TypeScript для Microsoft Graph предоставляются в виде отдельного пакета.
Установите типы TypeScript для Microsoft Graph:
npm install @microsoft/microsoft-graph-types --save-dev
Установив пакет в проекте, импортируйте его в файл веб-части:
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
).
Разработчики могут запрашивать дополнительные области разрешений, а администраторы клиентов — предоставлять их. Дополнительные сведения см. в статье Подключение к API, защищенным службой Azure AD, в решениях SharePoint Framework.
Известные проблемы
Роли Azure AD с делегированной проверкой подлинности
MSGraphClient в настоящее время использует неявный поток проверки подлинности при запросе делегированных разрешений из Microsoft Graph. Как указано в статье Маркеры доступа платформы удостоверений Майкрософт, утверждение wids
может отсутствовать при использовании неявного потока проверки подлинности из-за проблем с длиной. Утверждение wids
содержит перечень ролей Azure AD на уровне клиента, назначенных делегированному пользователю.
В результате запросы к конечным точкам Microsoft Graph, использующие роли Azure AD, а также к делегированным разрешениям могут завершаться неудачно из-за отсутствия утверждения wids
. На момент написания этой статьи сюда относятся следующие конечные точки: