API を使用してメッセージ拡張機能をビルドする

注:

API ベースのメッセージ拡張機能では、検索コマンドのみがサポートされます。

API (API ベース) を使用して構築されたメッセージ拡張機能では、Web サービスを使用してユーザーの要求と応答を管理し、ボットの登録は必要ありません。 Api ベースのメッセージ拡張機能は、開発者ポータル for Teams と Teams Toolkit for Visual Studio Code、コマンド ライン インターフェイス (CLI)、または Visual Studio を使用して構成およびデプロイできます。 API ベースのメッセージ拡張機能は、アプリがサードパーティのデータ、アプリ、およびサービスと直接対話し、その機能を強化するのに役立ちます。 API ベースのメッセージ拡張機能を使用すると、次のことができます。

  • 製品発売時の最新ニュースカバレッジなど、リアルタイムの情報を取得します。
  • Figma 内のチームのデザイン ファイルなど、知識ベースの情報を取得します。

OpenAPI Description (OAD) ドキュメントを使用して、API ベースのメッセージ拡張機能を作成できます。 OpenAPI Description ドキュメントを作成したら、OpenAPI Description ドキュメントを使用して、アプリのプロジェクトにクライアント コードを生成して統合します。 API からの応答を管理するために、応答レンダリング テンプレートをCreateまたは生成します。

Teams Toolkit を使用して API ベースのメッセージ拡張機能を構築する方法の詳細については、ビデオを参照してください。

前提条件

作業を開始する前に、次の要件に従っていることを確認してください。

OpenAPI の説明

OpenAPI Description (OAD) は、OpenAPI ファイルの構造とアウトラインを詳細に示す業界標準の仕様です。 これは、API を記述するための言語に依存しない、人間が判読できる形式です。 人間とマシンの両方で、openAPI Description を簡単に読み書きできます。 スキーマはマシン読み取り可能であり、YAML または JSON で表すことができます。 API ドリブン メッセージ拡張機能を作成する前に、OpenAPI Description ドキュメントが必要です。

応答レンダリング テンプレート

応答レンダリング テンプレートは、JSON 応答をプレビュー カードとアダプティブ カードにマップします。 ユーザーが検索結果を選択すると、プレビュー カードが結果として表示されます。 プレビュー カードは、メッセージ作成ボックスのアダプティブ カードに展開されます。

各検索コマンドには対応する応答レンダリング テンプレートが必要で、各コマンドは OpenAPI Description の操作に対応している必要があります。 ただし、OpenAPI Description で定義されているすべての操作がコマンドである必要はありません。 応答レンダリング テンプレートは、アダプティブ カード テンプレート、プレビュー カード テンプレート、およびメタデータで構成され、 でhttps://developer.microsoft.com/json-schemas/teams/vDevPreview/MicrosoftTeams.ResponseRenderingTemplate.schema.jsonホストされている応答レンダリング テンプレート スキーマに準拠する必要があります。

アプリ マニフェストの更新

アプリ マニフェスト (以前は Teams アプリ マニフェストと呼ばれる) を composeExtensions プロパティで更新します。 次のコードは、 プロパティを持つ composeExtensions アプリ マニフェストの例です。

{
  "composeExtensions": [
    {
      "composeExtensionType": "apiBased",
      "apiSpecificationFile": "aitools-openapi.yml",
      "commands": [
        {
          "id": "searchTools",
          "type": "query",
          "context": [
            "compose",
            "commandBox"
          ],
          "title": "search for AI tools",
          "description": "search for AI tools",
          "parameters": [
            {
              "name": "search",
              "title": "search query",
              "description": "e.g. search='tool to create music'"
            }
          ],
          "apiResponseRenderingTemplateFile": "response-template.json"
        }
      ]
    }
  ]
}

スクリーンショットは、ユーザーから Teams への OpenAPI 説明フローを示し、ユーザーに戻ります。

次の手順