Microsoft Teams、Microsoft Graph、Azure Communication Services を使用してカスタム イベント管理プラットフォームを構築する

このドキュメントの目的は、Microsoft Graph API と Azure Communication Services UI ライブラリとの統合により、イベント管理プラットフォームで Microsoft Teams ウェビナーの威力を発揮させるのにかかる時間を短縮することです。 対象となる読者は、開発者と意思決定者です。 この目的を達成するために、このドキュメントは次の 2 つの役割を果たします。1) イベント管理プラットフォームで適切な統合レベルをすばやく決定するのに役立つヘルプ。2) 実装を高速化するためのステップ バイ ステップのエンド ツー エンドのクイック スタート。

仮想イベントおよびイベント管理プラットフォームとは何ですか?

Microsoft では、Microsoft TeamsMicrosoft GraphAzure Communication Services を使用して、イベント プラットフォームでイベント機能を統合できるようにしました。 仮想イベントとは、イベントの発表者や参加者が音声、ビデオ、チャットを通じてコンテンツに参加するための仮想環境を、イベント開催者がスケジュールして構成するコミュニケーション モダリティのことです。 イベント管理プラットフォームを使用して、ユーザーはイベントを構成でき、出席者は自分のプラットフォーム内でそれらのイベントに参加し、プラットフォーム内の機能やゲーミフィケーションを適用できます。 仮想イベント シナリオを有効にするためにこの記事全体で使用される Teams 会議、ウェビナー、ライブ イベントの詳細について確認してください。

イベント管理プラットフォームの構成要素は何ですか?

イベント プラットフォームでは、仮想イベント エクスペリエンスを提供するために 3 つの主要な構成要素が必要になります。

1. イベントのスケジュール設定と管理

最初に、イベントの開催者がイベントをスケジュールして構成する必要があります。 このプロセスにより、イベントの出席者と発表者が対話するための場所となる仮想コンテナーが作成されます。 構成の一環として、開催者はイベントの登録要件を追加することを選択できます。 Microsoft では、開催者がイベントを作成するための以下の 2 つのパターンを提供しています。

  • Teams クライアント (Web またはデスクトップ): 開催者は、Teams クライアントを使用してイベントを直接作成できます。この場合、開催者は時間と場所の選択、登録の構成、出席者の一覧への送信を行うことができます。

  • Microsoft Graph: イベント プラットフォームは、ユーザーに代わって、その Microsoft 365 ライセンスを使用して Teams イベントをプログラムでスケジュールおよび構成できます。

2. 出席者エクスペリエンス

イベント出席者には、イベントのコンテンツへの出席、参加、取り組みを可能にするエクスペリエンスが提供されます。 このエクスペリエンスには、コンテンツの視聴、カメラ ストリームの共有、質問、アンケートへの回答などの機能が含まれる場合があります。 Microsoft では、Teams と Azure Communication Services によって提供されるイベントを出席者が使用するための以下の 2 つのオプションを提供しています。

  • Teams クライアント (Web またはデスクトップ): 出席者は、指定された参加リンクを使用して、Teams クライアントを使用してイベントに直接参加できます。 完全な Teams エクスペリエンスにアクセスできます。

  • Azure Communication Services: 出席者は、Teams の相互運用性を使用して、Azure Communication Services によって提供されるカスタム クライアントを介してイベントに参加できます。 出席者がエクスペリエンスを離れる必要がないように、このクライアントをイベント プラットフォームに直接埋め込むことができます。 このエクスペリエンスは、通話チャットに Azure Communication Services SDK を使用するか、少量コードの UI ライブラリを適用することで、ゼロから構築できます。

3. 主催者と開催者のエクスペリエンス

イベントの主催者と開催者は、コンテンツの提示、出席者の管理 (ミュート、ロールの変更など)、およびイベントの管理 (開始、終了など) を行うことができる必要があります。

  • Teams クライアント (Web またはデスクトップ): 発表者は、Web またはモバイル用の完全な Teams クライアントを使用して参加できます。 Teams クライアントは、コンテンツを配信するための機能の完全なセットを発表者に提供します。 Teams の発表者機能の詳細について確認してください。

Azure Communication Services と Microsoft Graph を使用したイベント管理用のカスタム ソリューションの構築

このチュートリアルの残りの部分では、Azure Communication Services と Microsoft Graph を使用して、カスタム イベント管理プラットフォームを構築する方法について重点的に説明します。 以下のサンプル アーキテクチャを使用します。 このアーキテクチャに基づいて、スケジュール設定と登録のフローを設定し、イベントに参加するためのイベント プラットフォームに出席者エクスペリエンスを埋め込むことに重点を置きます。

イベント管理プラットフォームのサンプル アーキテクチャを示す図

Microsoft Graph を利用して、イベントをスケジュールして出席者を登録する

Microsoft Graph により、イベント管理プラットフォームでは、主催者がイベント管理プラットフォームを使用して直接イベントをスケジュールして管理できるようになります。 出席者に関して、イベント管理プラットフォームでは、イベントの出席者を登録し、Teams にホストされたイベントに彼らが参加するための一意の資格情報を生成するカスタム登録フローをプラットフォーム上に構築できます。

Note

必要な Microsoft Graph API ごとに必要なスコープが異なるため、データにアクセスするための適切なスコープがアプリケーションに設定されていることを確認します。

Microsoft Graph を使用した登録が有効化されたイベントのスケジュール設定

  1. サービス アカウントの代わりに Microsoft Graph API を使用することをアプリケーションに許可します。 この承認は、アプリケーションが資格情報を使用してテナントと対話し、イベントのスケジュールと出席者の登録を行うために必要になります。

    1. 会議を所有し、適切にブランド化されたアカウントを作成します。 これは、イベントを作成し、その通知を受け取るアカウントです。 リマインダーの形で発生する可能性があるオーバーヘッドを考慮して、個人の運用アカウントを使用しないことをお勧めします。

    2. アプリケーションのセットアップの一環として、サービス アカウントを使用して、ソリューションへのログインが 1 回行われます。 アプリケーションはこのアクセス許可を使用して、会議を所有するサービス アカウントの代わりにアクセス トークンを取得して保存できます。 アプリケーションは、ログインで生成されたトークンを保存し、キー コンテナーなどのセキュリティで保護された場所にそれらを配置する必要があります。 アプリケーションは、アクセス トークンと更新トークンの両方を保存する必要があります。 認証トークン および更新トークンの詳細について確認してください。

    3. アプリケーションには、会議を作成するためにサービス アカウントに代わって動作するためのオフライン スコープを持つ "代理" アクセス許可が必要になります。 個々の Microsoft Graph API にはそれぞれ異なるスコープが必要です。詳細については、必要な API を紹介した下の詳細なリンクを参照してください。

    4. 更新トークンは、違反またはアカウントの終了が発生した場合に取り消すことができます

注意

承認は、テストを行う開発者と、イベント プラットフォームを使用してイベントを設定する開催者の両方から必要になります。

  1. 開催者は、Contoso プラットフォームにログインして、イベントを作成し、登録 URL を生成します。 これらの機能を有効にするには、開発者は以下を使用する必要があります。

    1. 作成する新しいイベントを POST するための予定表イベントの作成 API。 返されるイベント オブジェクトには、次のステップに必要な参加 URL が含まれます。 isonlinemeeting: trueonlineMeetingProvider: "teamsForBusiness" のパラメーターを設定する必要があります。 Prefer ヘッダーを使用して、イベントのタイム ゾーンを設定します。

    2. 次に、オンライン会議の作成 API を使用して、上記のステップで生成した参加 URL を使用して、オンライン会議情報を GET します。 OnlineMeeting オブジェクトには、登録手順に必要な meetingId が含まれます。

    3. 開発者はこれらの API を使用して、開催者の予定表と、出席者が参加する Teams オンライン会議に表示する予定表イベントを作成します。

注意

予定表とオンライン会議の API を使用する際、開催者の予定表エントリの二重化に関する既知の問題があります。

  1. イベントの登録を有効にするために、Contoso は 外部会議登録 API を使用して POST を実行できます。 この API では、Contoso が上記で作成した OnlineMeetingmeetingId を渡す必要があります。 登録は省略可能です。 登録できるユーザーに関するオプションを設定できます。

Microsoft Graph に出席者を登録する

イベント管理プラットフォームでは、カスタム登録フローを使用して出席者を登録できます。 このフローは、外部会議登録者 API によって提供されます。 この API を使用して、Contoso は出席者ごとに一意の Teams Join URL を受け取ります。 この URL は、出席者を会議に参加させるために、Teams または Azure Communication Services を通じて出席者エクスペリエンスの一部として使用されます。

Azure Communication Services を使用して出席者とコミュニケーションする

Azure Communication Services を介して、開発者は SMS とメールの機能を使用して、登録したイベントに関するリマインダーを出席者に送信できます。 コミュニケーションには、イベントの確認や、参加と参画に関する情報も含めることができます。

  • SMS 機能を使用すると、出席者にテキスト メッセージを送信できます。
  • メール機能では、カスタム ドメインを使用して出席者との直接的なコミュニケーションがサポートされます。

Azure Communication Services を利用してカスタムの出席者エクスペリエンスを構築する

注意

Teams ウェビナー エクスペリエンスの一部として Azure Communication Services を使用する場合の制限事項。 Microsoft のドキュメントで詳細をご確認ください。

出席者のエクスペリエンスは、Azure Communication Services を使用してアプリケーションまたはプラットフォームに直接埋め込むことができるため、出席者はプラットフォームを離れる必要がありません。 これは、Teams イベントとの相互運用性をサポートする低レベルの呼び出しとチャット SDK、および開発時間を短縮し、通信を簡単に埋め込むために使用可能なすぐに利用できる UI ライブラリを提供します。 Azure Communication Services を使用すると、開発者は必要なソリューションの種類に柔軟性を持たせることができます。 ウェビナーのシナリオで Azure Communication Services を使用する場合の制限事項を確認してください。

  1. まず、開発者は Microsoft Graph API を利用して参加 URL を取得できます。 この URL は、登録時に出席者ごとに一意に提供されます。 または、特定の会議に対して要求することもできます。

  2. 開発者は、Azure Communication Services の使用を開始する前に、リソースを作成する必要があります。

  3. リソースが作成されたら、開発者は出席者が Azure Communication Services にアクセスするためのアクセス トークンを生成する必要があります。 信頼できるサービス アーキテクチャを使用することをお勧めします。

  4. 開発者は、参加リンク URL を使用してヘッドレス SDK または UI ライブラリを利用して、Teams の相互運用性を介して Teams 会議に参加できます。 詳細は下のとおりです。

ヘッドレス SDK UI ライブラリ
開発者は、呼び出しおよびチャット SDK を利用して、お使いのカスタム クライアントを使用して Teams に参加できます。 開発者は、呼び出しとチャットまたは純粋な呼び出しチャットの組み合わせのいずれかを選択して、エクスペリエンスを構築できます。 または、開発者は構成可能なコンポーネントを利用して、カスタムの Teams 相互運用エクスペリエンスを構築することもできます。

注意

Azure Communication Services は、Azure を通じて課金される従量課金ベースのサービスです。 価格の詳細については、Microsoft のリソースを参照してください。