メッセージの拡張機能のビルド

メッセージ拡張機能を使用すると、ユーザーは Microsoft Teams クライアント内のボタンとフォームを使用して Web サービスに参加できます。 ユーザーは、外部システムのメッセージ作成領域、コマンド ボックスから、またはメッセージから直接、操作を検索したり、開始したりできます。 これらの操作の結果は、書式設定されたカードとして Teams クライアントに返すことができます。

この記事では、メッセージ拡張機能、ユース ケース、機能、アクション コマンドと検索コマンド、リンク展開の概要について説明します。

次の図は、ユーザーがメッセージ拡張機能を呼び出すことができる場所を示しています:

注:

  • 作成ボックスにメッセージ表示オプションを @mention することはできません。
  • Teams では、外部ユーザーとのグループ チャットのメッセージ拡張機能オプションはサポートされていません。

メッセージ拡張機能が使用されるシナリオ

シナリオ
アクションを実行して会話に結果を返すには、外部システムが必要です。 リソースの予約、予約されたタイム スロットをチャネルに知らせます。
外部システムで何かを検索し、その結果を会話と共有する必要があります。 Azure DevOps で作業項目を検索し、アダプティブ カードとしてグループと共有します。
外部システムで複数のステップまたは大量の情報を含む複雑なタスクを完了し、その結果を会話で共有したい場合。 Teams メッセージに基づいて追跡システムにバグを作成し、そのバグを割り当て、バグの詳細を記載したカードを会話スレッドに送信します。

メッセージ拡張機能のしくみを理解する

メッセージ拡張機能は、ホストする Web サービスと、Teams クライアント内で Web サービスが呼び出される場所を定義するアプリ マニフェストで構成されます。 Web サービスは Bot Framework のメッセージング スキーマとセキュリティで保護された通信プロトコルを使用するため、Bot Framework にボットとして Web サービスを登録する必要があります。

注:

Web サービスを手動で作成することもできますが、プロトコルを操作するには Bot Framework SDK を使用します。

アプリ マニフェスト (以前は Teams アプリ マニフェストと呼ばれていました) では、最大 10 個の異なるコマンドを含む 1 つのメッセージ拡張機能を定義します。 各コマンドは、アクションや検索などの種類と、メッセージ拡張機能が呼び出されるクライアント内の場所を定義します。 呼び出しの場所には、メッセージの作成領域、コマンド バー、メッセージが含まれます。 メッセージ拡張機能を呼び出すと、Web サービスはすべての関連情報を含む JSON ペイロードを含む HTTPS メッセージを受信します。 JSON ペイロードを使用して応答し、Teams クライアントに有効にする次の操作を通知します。

メッセージ拡張機能コマンドの種類

メッセージ拡張コマンドには、アクション コマンドと検索コマンドの 2 種類があります。 メッセージ拡張機能のコマンドの種類は、Web サービスで利用可能な UI 要素と操作フローを定義します。 どちらのコマンド タイプでも、認証と構成の相互作用が提供されます。

操作コマンド

アクション コマンドを使用して、情報を収集または表示するためのモーダル ポップアップをユーザーに表示します。 ユーザーがフォームを送信すると、Web サービスは、スレッドに直接、またはメッセージ作成領域にメッセージを挿入することで応答します。 その後、ユーザーはメッセージを送信できます。 より複雑なワークフローの場合は、複数のフォームをリンクできます。

メッセージ作成領域、コマンド ボックス、またはメッセージからアクション コマンドをトリガーします。 メッセージからコマンドを呼び出すと、ボットに送信される最初の JSON ペイロードには、ボットが呼び出されたメッセージ全体が含まれます。 次の図は、メッセージ拡張機能アクション コマンド ダイアログ (TeamsJS v1.x ではタスク モジュールと呼ばれています) を表示します。

メッセージ拡張機能アクション コマンド ダイアログ

検索コマンド

検索コマンドを使用すると、外部システムで情報を検索できます。 検索コマンドを使用するには、検索ボックスにクエリを手動で入力するか、メッセージの作成領域に監視対象ドメインへのリンクを挿入してから、検索結果をメッセージに埋め込みます。 単純な検索コマンド フローでは、最初の呼び出しメッセージには、ユーザーが送信した検索文字列が含まれます。 カードのリストとカードのプレビューで応答します。 Teams クライアントは、ユーザーのカード プレビューのリストをレンダリングします。 ユーザーがリストからカードを選択すると、フルサイズのカードがメッセージ作成領域に挿入されます。

カードは、メッセージの作成領域またはコマンド ボックスからトリガーしますが、メッセージからはトリガーしません。 メッセージからトリガーすることはできません。 次の画像は、メッセージ拡張機能の検索コマンド ダイアログを示しています。

メッセージ拡張機能検索コマンド

注:

カードの詳細については、「カードとは」を参照してください。

注:

リンクの展開は、ボットベースのメッセージ拡張機能でのみサポートされています。

メッセージ作成領域に URL を貼り付けると、Teams は Web サービスを呼び出します。 この機能は、リンク展開として知られています。 特定のドメインを含む URL が作成メッセージ領域に貼り付けられたときに呼び出しメッセージを受信するようにサブスクライブできます。 Web サービスでは、URL を展開して詳細なカードを作成し、標準の Web サイト プレビュー カードよりも多くの情報を提供できます。 ユーザーが Teams クライアントを離れることなくすぐにアクションを実行できるボタンを追加できます。 次の画像は、メッセージ表示オプションにリンクを貼り付けた場合のリンク展開機能を示しています。

リンクを展開する

リンクの展開

メッセージの拡張機能のビルド

メッセージ拡張機能をビルドするには、次のいずれかの方法を使用します。

  • API を使用してメッセージ拡張機能を構築する (API ベース): 既存の API からメッセージ拡張機能を作成します。 この方法には、OpenAPI 記述 (OAD) ドキュメントが必要です。

  • Bot Framework (ボット ベース) を使用してメッセージ拡張機能を構築する: 1 対 1 の会話エクスペリエンスが必要な場合は、ボットから新しいメッセージ拡張機能を作成します。

注:

エージェントは、より柔軟でインテリジェントで将来に備えたエクスペリエンスを提供し、より豊富な推論、より簡単な開発、進化する Teams および Microsoft 365 プラットフォームとのより良い整合性を可能にします。 エージェントを調べて構築することをお勧めします。

詳細については、「 宣言型エージェントのビルド 」および「 Teams でのエージェントのビルド」を参照してください。

既存のボットベースのメッセージ拡張機能がある場合は、 エージェントとしても拡張 できます。

次の表は、開始するメッセージ拡張機能の種類を選択するのに役立ちます。

API ベースのメッセージ拡張機能

  • 作成と保守がより簡単かつ迅速になります。
  • メッセージ拡張機能は API を使用します。
  • ボット ロジックに追加のコードやリソースは必要ありません。
  • メッセージ拡張機能が Web サービスと通信するだけでよく、複雑なロジックや状態管理を必要としないシナリオに最適です。
  • トラフィックは Azure ボット インフラストラクチャに依存しないため、プライベート化されます。
  • 検索コマンドをサポートします。

ボットベースのメッセージ拡張機能

  • より柔軟。
  • メッセージ拡張機能は Bot Framework を使用します。
  • ボットの全機能を使用できます。
  • メッセージ拡張機能が複数のサービスと通信する必要があるシナリオ、複雑なロジックやユーザー操作を管理する必要があるシナリオ、またはセッション間で状態を維持する必要があるシナリオに最適です。
  • アクション コマンド、検索コマンド、およびリンクの展開をサポートします。

スクリーンショットは、ユーザーが API ベースのメッセージ拡張機能とボット ベースのメッセージ拡張機能のどちらかを選択できるように役立つデシジョン ツリーを示しています。

メッセージ拡張機能の構築を開始するオプションを選択します。

       スクリーンショットは、OpenAPI アイコン タイルを示しています。

       スクリーンショットは、Bot Framework タイルを示しています。

コード サンプル

サンプルの名前 説明 .NET Node.js Python
操作ベースのコマンドを使用したメッセージ拡張機能 このサンプルでは、Microsoft Teams 用の Action-Based メッセージ拡張機能を作成して、ユーザーが対話的にコンテンツを生成できるようにする方法を示します。 ボット、メッセージ拡張機能、ユーザー入力とのシームレスな統合により機能が強化されます。 表示 表示 表示
検索ベースのコマンドを使用したメッセージ拡張機能 このサンプルでは、ユーザーが検索を実行して結果を取得できるメッセージ拡張機能を Microsoft Teams で作成する方法を示します。 表示 表示 表示
メッセージ拡張機能アクションのプレビュー このサンプル アプリは、Teams メッセージ拡張機能でアクション プレビューを使用する方法を示しています。これにより、ユーザーはタスク モジュールへの入力からカードを作成できるようになります。 ユーザーにメッセージを割り当てることでユーザー エンゲージメントを強化するボットとの対話を紹介します。 表示 表示 該当なし
タスク スケジュール用のメッセージ拡張機能操作 このサンプルでは、ユーザーが Microsoft Teams でタスクをスケジュールし、リマインダー カードを受信できるメッセージ拡張機能を示します。 表示 表示 該当なし
Northwind インベントリ メッセージ拡張機能 このサンプルでは、Microsoft 365 Copilot のプラグインとして使用できる Teams メッセージ拡張機能を実装します。 メッセージ拡張機能を使用すると、ユーザーは Northwind データベースへのクエリを実行できます。 該当なし 表示 該当なし