Получить определенную информацию о схеме для запросов Microsoft Graph - PullRequest
0 голосов
/ 08 октября 2018

У меня есть надстройка Office JavaScript.Мы обрабатываем наш собственный процесс лицензирования.Частью рабочего процесса является использование office-js-helpers для обработки журналов Microsoft.Пользователь использует конечную точку Microsoft для входа в систему, и мы получаем токен доступа , который мы отправляем на https://graph.microsoft.com/v1.0/me для получения пользовательских данных.Некоторые пользователи являются отдельными пользователями Microsoft, другие являются частью организации.

Недавно я заметил, что поле givenName не предоставлено, и оно вызывает ошибки при приеме внутрь.Мне трудно разработать схему для обработки пользовательских данных, поступающих из MS Graph, поскольку я не видел никакой информации о схеме для возможных ответов на запрос me.

Может кто-нибудь указать мне, где MS перечисляет определенную схему для своих запросов Graph?Есть ли URI запроса для такой информации?

1 Ответ

0 голосов
/ 09 октября 2018

Базовую схему объекта можно определить, указав odata=fullmetadata Уровень управления JSON , как показано ниже:

Url: https://graph.microsoft.com/v1.0/me
Method: Get
Headers
   Accept: application/json;odata.metadata=full;odata.streaming=false;IEEE754Compatible=false

, который возвращает имя типа содержащего объекта (odata.type аннотация), для конечной точки https://graph.microsoft.com/v1.0/me это #microsoft.graph.user

А затем через конечная точка метаданных API-интерфейса Microsoft Graph :

Url: https://graph.microsoft.com/v1.0/$metadata
Method: Get

где microsoft.graph.user схема объекта может быть найдена в элементе Schema для Namespace="microsoft.graph":

<EntityType Name="user" BaseType="microsoft.graph.directoryObject" OpenType="true">
    <Property Name="accountEnabled" Type="Edm.Boolean" />
    <Property Name="ageGroup" Type="Edm.String" />
    <Property Name="assignedLicenses" Type="Collection(microsoft.graph.assignedLicense)" Nullable="false" />
    <Property Name="assignedPlans" Type="Collection(microsoft.graph.assignedPlan)" Nullable="false" />
    <Property Name="businessPhones" Type="Collection(Edm.String)" Nullable="false" />
    <Property Name="city" Type="Edm.String" />
    <Property Name="companyName" Type="Edm.String" />
    <Property Name="consentProvidedForMinor" Type="Edm.String" />
    <Property Name="country" Type="Edm.String" />
    <Property Name="department" Type="Edm.String" />
    <Property Name="deviceKeys" Type="Collection(microsoft.graph.deviceKey)" Nullable="false" />
    <Property Name="displayName" Type="Edm.String" />
    <Property Name="employeeId" Type="Edm.String" />
    <Property Name="givenName" Type="Edm.String" />
    ...
  </EntityType>
...