次の方法で共有


Microsoft Graph Toolkit を使用して Microsoft Teams タブを構築する

このトピックでは、Microsoft Teams ソリューションで Microsoft Graph Toolkit の使用を開始する方法について説明します。 このガイドは、シングル サインオン (SSO) のない単一ページ アプリ用であり、バックエンドは必要ありません。 Teams Toolkit をスキャフォールディング システムとして使用します。

タブの作成には、次の手順が含まれます。

  1. Teams ツールキットを使用して、Reactと Fluent UI を使用して新しい [Teams] タブを構築します。
  2. ファイルの内容を Tab.tsx 置き換えます。
  3. TeamsFx プロバイダーを初期化します。
  4. コンポーネントを追加します。
  5. アプリをテストします。

Teams Toolkit でReactと Fluent UI を使用して新しい [Teams] タブを構築する

開始するには、「 新しい Teams プロジェクトを作成 してタブを起動して実行する」を参照してください。 新しいアプリの機能を選択するように求められたら、[Fluent UI でReact] を選択します。 プログラミング言語の選択を求められたら、[TypeScript] を選択します。 残りの部分については、ウィザードの通常のパスを参照してください。


ファイルの内容を Tab.tsx 置き換える

ファイルの内容を /src/components/Tab.tsx 削除し、次のコードを使用します。 これは、達成する目標に焦点を当てるのに役立ちます。

import { useContext } from "react";
import { TeamsFxContext } from "./Context";
import React from "react";
import { applyTheme } from "@microsoft/mgt-react";
import { Button } from "@fluentui/react-components";

export default function Tab() {
  const { themeString } = useContext(TeamsFxContext);
  const [loading, setLoading] = React.useState<boolean>(false);
  const [consentNeeded, setConsentNeeded] = React.useState<boolean>(false);

  React.useEffect(() => {
    applyTheme(themeString === "default" ? "light" : "dark");
  }, [themeString]);

  return (
    <div>
      {consentNeeded && (
        <>
          <p>
            Click below to authorize button to grant permission to using
            Microsoft Graph.
          </p>
          <Button appearance="primary">Authorize</Button>
        </>
      )}

      {!consentNeeded && <></>}
    </div>
  );
}

TeamsFx プロバイダーを初期化する

Microsoft Graph Toolkit プロバイダーは、コンポーネントの認証と Microsoft Graph へのアクセスを有効にします。 詳細については、「プロバイダーを使用する」を参照してください。 TeamsFx プロバイダーは、ユーザーを認証するために Teams SDK で実装する必要があるすべてのロジックと操作を処理します。

JavaScript コードでプロバイダーを初期化するには、ファイルのセクションに次のコードを imports 追加します。

import { Providers, ProviderState } from "@microsoft/mgt-react";
import { TeamsFxProvider } from "@microsoft/mgt-teamsfx-provider";
import {
  TeamsUserCredential,
  TeamsUserCredentialAuthConfig,
} from "@microsoft/teamsfx";

const authConfig: TeamsUserCredentialAuthConfig = {
  clientId: process.env.REACT_APP_CLIENT_ID!,
  initiateLoginEndpoint: process.env.REACT_APP_START_LOGIN_PAGE_URL!,
};

const scopes = ["User.Read", "Calendars.Read"];
const credential = new TeamsUserCredential(authConfig);
const provider = new TeamsFxProvider(credential, scopes);
Providers.globalProvider = provider;

コンポーネント内の ステートメントの Tab 前に React.useEffect 、次を追加します。

React.useEffect(() => {
  const init = async () => {
    try {
      await credential.getToken(scopes);
      Providers.globalProvider.setState(ProviderState.SignedIn);
    } catch (error) {
      setConsentNeeded(true);
    }
  };

  init();
}, []);

const consent = async () => {
  setLoading(true);
  await credential.login(scopes);
  Providers.globalProvider.setState(ProviderState.SignedIn);
  setLoading(false);
  setConsentNeeded(false);
};

<Button> 次のコードに置き換えます。

<Button appearance="primary" disabled={loading} onClick={consent}>
  Authorize
</Button>

コンポーネントの追加

これで、Microsoft Graph Toolkit コンポーネントのいずれかを追加する準備ができました。 追加する可能性が高い最初のコンポーネントは、人と議題です。 まず、 の @microsoft/mgt-reactを更新しますimports

import { Agenda, Person, applyTheme } from "@microsoft/mgt-react";

ファイルの下部にある の <></> 間にコンポーネントを追加します。

<Person personQuery="me" />
<Agenda></Agenda>

アプリのテスト

  1. Visual Studio Code で を押 F5 すか、 を Run and Debug Activity Panel 使用します。
  2. 個人用タブを実行できるターゲットの Microsoft 365 アプリケーションを選択します。 [Teams でのデバッグ]、[ Outlook でのデバッグ]、[ Microsoft 365 アプリのデバッグ] の順に選択し、[ 実行とデバッグ] を選択します。

メモ タブ It looks like the webpage at **https://localhost:53000/index.html#/tab** might be having issues, or it may have moved permanently to a new web addressの実行時に HTTPS エラーが発生した場合は、次の記事を参照してください。

次の手順