Отображение предстоящих собраний для пользователя Microsoft 365 с помощью Microsoft Graph Toolkit

Недавно я показал вам, как вы можете менее чем за 10 минут создать простого личного помощника, который показывает пользователям встречи, которые они оставили на день. Вот еще более простой способ сделать это с помощью Microsoft Graph Toolkit.

Показать предстоящие собрания для пользователя Microsoft 365

Отображение предстоящих собраний — распространенный сценарий при интеграции Microsoft 365 в рабочие приложения. Используя Microsoft Graph, ваше приложение может подключаться к Microsoft 365 и получать доступ к календарю пользователя. Создав конкретный запрос, вы можете получать встречи между настоящим моментом и концом дня.

Недавно я шаг за шагом рассказывал вам, как выполнить этот сценарий менее чем за 10 минут с помощью Microsoft Graph JavaScript SDK. Но есть еще более простой способ сделать это с помощью Microsoft Graph Toolkit.

Самый простой способ подключения к Microsoft 365

Microsoft Graph Toolkit (MGT) — это набор компонентов и поставщиков проверки подлинности, подключенных к Microsoft 365. MGT упрощает реализацию проверки подлинности, загрузку данных из Microsoft Graph и отображение их в вашем приложении. И если что-то пойдет не так, он также правильно обрабатывает исключения. Компоненты Microsoft Graph Toolkit легко настраиваются, поэтому вы можете адаптировать их к своему приложению.

Краткое сравнение: вход в приложение

Чтобы понять преимущества использования Microsoft Graph Toolkit, давайте рассмотрим пример: разрешите пользователям входить в ваше приложение, используя свою учетную запись Microsoft 365.

Как правило, вам понадобится код, подобный следующему:

<html>
<head>
  <title>Upcoming meetings</title>
  <script src="https://alcdn.msauth.net/browser/2.28.3/js/msal-browser.min.js"></script>
</head>
<body>
  <h1>Upcoming meetings</h1>
  <div id="auth"></div>
  <script>
    (() => {
      const scopes = ['Calendars.Read'];
      const msalConfig = {
        auth: {
          clientId: '021aa7bb-9aaa-4185-92ad-c7b75a7fb9d2'
        }
      };
      const msalClient = new msal.PublicClientApplication(msalConfig);

      function render() {
        msalClient
          .handleRedirectPromise()
          .then(response => {
            const accounts = msalClient.getAllAccounts();

            if (accounts.length === 0) {
              document.querySelector('#auth').innerHTML = '<button>Login</button>';
              document.querySelector('#auth button').addEventListener('click', login);
            }
            else {
              document.querySelector('#auth').innerHTML = '<button>Logout</button>';
              document.querySelector('#auth button').addEventListener('click', logout);
            }
          });
      }

      function login(e) {
        e.preventDefault();
        msalClient.loginRedirect({
          scopes
        });
      }

      function logout(e) {
        e.preventDefault();
        msalClient.logoutRedirect();
      }

      render();
    })();
  </script>
</body>
</html>

Для сравнения, вот та же функциональность, созданная с помощью Microsoft Graph Toolkit:

<html>
<head>
  <title>Upcoming meetings</title>
  <script src="https://unpkg.com/@microsoft/mgt@2/dist/bundle/mgt-loader.js"></script>
</head>
<body>
  <h1>Upcoming meetings</h1>
  <mgt-msal2-provider client-id="021aa7bb-9aaa-4185-92ad-c7b75a7fb9d2" scopes="Calendars.Read"></mgt-msal2-provider>
  <mgt-login></mgt-login>
</body>
</html>

Увидеть разницу? И мы еще даже не добрались до хорошей части: вызова Microsoft Graph!

С Microsoft Graph Toolkit вы можете сосредоточиться на создании своего приложения и решении проблем ваших клиентов. Об остальном позаботится Microsoft Graph Toolkit.

Отображение предстоящих совещаний с помощью Microsoft Graph Toolkit

Чтобы дать вам более полное сравнение, я перестроил тот же сценарий с помощью Microsoft Graph Toolkit.

Лучший способ проверить приложение — запустить его локально, следуя инструкциям в файле README.

Поскольку получать данные с помощью MGT очень просто, я добавил дополнительный пользовательский интерфейс, чтобы различать разные состояния приложения.

Компонент MGT Agenda, который я использую для отображения предстоящих встреч, предлагает различные шаблоны для настройки пользовательского интерфейса. При загрузке данных я показываю простое текстовое сообщение:

<mgt-agenda>
  <template data-type="loading">
    <div class="loading">Loading...</div>
  </template>
  <!-- trimmed for brevity -->
</mgt-agenda>

Когда нет данных для отображения, я принимаю во внимание тот факт, что данных может не быть, потому что пользователь еще не вошел в приложение или что у пользователя могут не быть предстоящих встреч:

<mgt-agenda>
  <template data-type="loading">
    <div class="loading">Loading...</div>
  </template>
  <template data-type="no-data">
    <div class="no-data" data-if="mgt.Providers.globalProvider.state === mgt.ProviderState.SignedIn">
      <!-- No upcoming meetings -->
    </div>
    <div class="no-data" data-else>
      <p>Sign in to view your upcoming meetings</p>
    </div>
  </template>
</mgt-agenda>

Я использую для этого возможность условного рендеринга в MGT.

Чтобы показать предстоящие встречи, для простоты я использую шаблон по умолчанию, поставляемый с компонентом Agenda.

Краткое содержание

Набор инструментов Microsoft Graph — это отличный способ создавать приложения, которые подключаются к Microsoft 365. Он упрощает подключение к Microsoft 365 и предоставляет набор компонентов, которые вы можете использовать для создания своего приложения и получения данных и идей из Microsoft 365. , Поскольку компоненты MGT легко настраиваются, вы можете легко интегрировать их в свое приложение.

Запустите образец приложения локально и убедитесь сами, насколько просто создавать приложения, которые подключаются к Microsoft 365 с помощью Microsoft Graph Toolkit.

Первоначально опубликовано на https://blog.mastykarz.nl 28 октября 2022 г.