Microsoft Teams 用のアプリはどのようにして作成しますか?

完了

Microsoft Teams プラットフォーム上に構築されるアプリの作成と展開には、構築する内容を決定し、Web サービスを構築し、アプリ パッケージを作成し、そのパッケージを対象のエンド ユーザーに配布するという作業が伴います。 どのユーザーがアプリにアクセスでき、インストールできるかについては、組織の管理者が決定します。特定のコンテキストでアプリをインストールする作業は、ユーザーが行います。 これらの各手順について詳しく説明します。

アプリをデザインする

効果的な Microsoft Teams アプリを作成する上での最も重要な手順は、活用度を高めるための、拡張ポイントと UI 要素の最適な組み合わせを選択することです。 十分な時間をかけて、アプリを用いて解決しようとしている問題を理解し、Microsoft Teams クライアントでユーザーがアプリを操作するさまざまな方法でソリューションをマッピングします。 コンテキストおよびスコープは非常に重要であるため、しっかりと検討します。 1 対 1 のチャットでは正常に機能する会話ボットが、グループ チャットやチャネルの会話の一部としては機能しない場合があります。

開発者が使用できる機能や、それらの機能に適したいくつかのシナリオを以下にまとめます。 複数の方法で多くのタスクを実行できます。ジョブに適したツールを選択すると、ユーザー エクスペリエンスが向上します。

  • メッセージングの拡張機能 - 検索コマンドは、ユーザーが外部システムを検索し、検索結果を Teams 内で共有できるようにする点で便利です。 カードおよびカード アクションを使用することで、検索結果の書式を多様に設定でき、ユーザーは Microsoft Teams クライアントから移動せずに結果に対して操作ができるようになります。
  • メッセージングの拡張機能 - アクション コマンドは、ユーザーからの情報を 1 か所で収集し、その情報を Web サービスに送信する上で有効です。 何らかのレコードを作成したり、1 つのトランザクションの一部として収集する情報が数個以上ある場合に最適です。
  • タブ - グループとチャネル内では、複数のユーザーが共同作業するための共有キャンバスが提供されます。 ユーザーのグループに関する情報やサービスがある場合は、この機能をアプリに追加することが推奨されます。 すべてのユーザーが同じキャンバスから作業するという点に注意してください。そのため、ページはステートレスな、シングルページ アプリとして動作する必要があります。
  • タブ - 個人用アプリ内では、Web のような、個人用のエクスペリエンスが提供されます。 この種類のタブは通常、「自分に割り当てられているアイテム」や「自分が作成したアイテム」など、「ハブ」 のシナリオに適しています。 これらのタブは、ヘルプや詳細情報ページなどの静的なコンテンツにも向いています。
  • 会話ボット - グループとチャネル内は、関係するユーザー全員 (または、少なくともほとんど全員) にとり有益な追加情報を追加するのに役立ちます。 このボットは、関連する情報を積極的に会話に追加したり、ユーザーからの要求に応答したりするのに使用できます (「ボット、ランチをどの店で食べるかのアンケートを作成して」)。 通常は、会話ボットはマルチターンの会話では使用しないようにします。タスク モジュールを使用して情報を収集するか、会話を 1 対 1 のチャットに移動してからその結果を元の会話に追加します。
  • 会話ボット - 個人用アプリ内では、非常に多様なワークロードが可能です。 Q&A ボット、別のシステムでワークフローを開始するボット、ジョークを言うボット、メモを取るボットなどがありますが、これらはごく一部です。 機能を表示するための方法として、会話ベースのインターフェイスが最適な方法であるかどうかを必ず検討します。
  • Webhook とコネクタ は、ユーザーがチャネルを外部システムからの通知メッセージにサブスクライブできるようにするために役立ちます。
  • 会議アプリは、コラボレーション、パートナーシップ、情報に基づくコミュニケーション、および共有フィードバックを可能にします。 会議アプリは、会議のライフサイクルの各段階でユーザー エクスペリエンスを提供できます。 会議のライフサイクルには、出席者の状態に応じた会議前、会議中、会議後のアプリ エクスペリエンスが含まれます。 このモジュールでは、Microsoft Teams 会議で使用するカスタム アプリを作成します。

効果的なアプリでは、複数の拡張ポイントが活用されています。 たとえば、改善のための提案をユーザーが送信できるようにすることを組織が希望しているとします。 メッセージングの検索コマンド拡張機能を使用して既存の提案を検出して共有するアプリを作成したり、ユーザーが提案を作成および更新できるようにするアクション コマンド、チームに適用されたすべての提案をチームが表示できるようにするチャネル タブ、ユーザーが以前に送信したすべての提案をそのユーザーが表示できるようにする個人用タブを追加したりできます。 自然言語処理や機械学習を活用する会話ボットを追加することで、ユーザーは複数の提案に対して複雑なクエリを実行できるようになります。このようにして、豊富な機能が備わった、完全に統合された Teams アプリを作成できます。

開発環境を準備する

少なくとも、カスタム アプリのアップロードが有効化されている Microsoft 365 組織にアクセスできる必要があります。 そのような組織がない場合は、Microsoft 365 開発者プログラムに登録すると、開発用組織を取得できます。 また、Web サービスを展開してホストする手段も必要です。 ローカル開発の場合は ngrokのようなトンネリング サービスを使用できますが、実稼動用の開発では、Azure などのクラウド サービス プロバイダーにサービスを展開することが推奨されます。 Web サービスをホストするためにはオンプレミスのインフラストラクチャを使用できますが、(ファイアウォールの背後にではなく) 一般にアクセス可能なインフラストラクチャである必要があります。

開発環境を選択する

開発者は、Microsoft Teams アプリを構築する際に複数のオプションを利用できます。

コミュニティ ベースの Microsoft Teams 用 Yeoman ジェネレーター (別名: 「yo teams」) は、開発者が構築中の Microsoft Teams アプリの種類に関するいくつかの質問に答えると、プロジェクトの足場を作ります。 Microsoft Teams 用 Yeoman ジェネレーターの詳細については、「最初の Microsoft Teams アプリを作成する」をご覧ください。

Microsoft Teams ツールキットを使用すると、Visual Studio Code 環境内で直接カスタムの Teams アプリを構築できます。 ツールキットはプロセスをガイドし、Teams アプリの構築、デバッグ、起動に必要なすべてを提供します。 Microsoft Teams Toolkit for Visual Studio および Visual Studio Code の詳細については、こちらを参照してください。Microsoft Teams Toolkit でアプリを構築する

Web サービスを構築する

ユーザーによるアプリの操作方法を決定したら、アプリを稼働させる Web サービスを次に構築します。 作成する内容に応じて、Teams では作成開始に役立つ以下のさまざまな SDK、テンプレート、コード サンプル、およびジェネレーターが提供されています。

  • メッセージング拡張機能と会話ボット用のボット フレームワーク SDK
  • タブおよびその他のコンテンツ ページ用の Teams JavaScript クライアント SDK
  • Node.js でのアプリ構築用の Yeoman ジェネレーター
  • Web コンテンツ ページ用の一連のオープンソース コントロールである Fluent UI
  • 実稼動の準備が整っているアプリ テンプレート

構築を開始するのに役立つツールとサンプルの完全な一覧については、すべてのドキュメントを参照してください。

インターネット上で一般にアクセス可能な状態で Web サービスをホストし (通常は Azure などのクラウドサービス プロバイダー上)、HTTPS 経由でコンテンツを提供する必要があります。

アプリ パッケージを作成する

Web サービスが稼働状態になったら、配布可能な、Microsoft Teams にインストールできるアプリ パッケージを作成する必要があります。 アプリ パッケージには、2 つのアイコンと、アプリのメタデータ、アプリが使用している拡張ポイント、およびこれらの拡張ポイントを動かすサービスへのポインターを説明する JSON マニフェスト ファイルが含まれます。

アプリ パッケージを作成する際は、手動で作成するか、または Teams 内にある、Teams アプリの作成に役立つアプリである App Studio を使用するかを選択できます。 App Studio には、アプリ マニフェストを作成するための手順が示されます。作成するボットをボット フレームワークに登録するのにも役立ちます。 また、App Studio にはカードおよびカード アクションを視覚的に作成するのに役立つカード デザイナーも含まれ、Teams で自分宛に例を送信できます。

アプリを配布する

カスタム Microsoft Teams アプリを配布するための方法には、対象のオーディエンスに応じて 3 つのオプションがあります。

  • アプリ パッケージを直接共有する。 アプリ パッケージをユーザーと直接共有できます。 この方法は、アプリが限られたユーザー (数チームまたは数人のユーザー) を対象としている場合、またアプリの開発およびテスト中に使用する場合に便利です。
  • アプリを組織のアプリ カタログに公開する。 アプリが特定の組織に該当する場合 (または、組織の特定のニーズを満たすようにアプリをカスタマイズした場合)、テナント管理者はアプリを組織のアプリ カタログにアップロードできます。 これにより、組織内のすべてのユーザーがアプリをインストールできるようになります (ただし、自動的にはインストールされません)。
  • アプリをパブリック App Store に公開する。 アプリがすべての Teams ユーザーを対象としている場合、アプリをパブリック App Store に送信して公開できます。 厳格な確認プロセスを実行し、すべてが完全な状態であることを確認します。

アプリを配布する際は、対象ユーザーだけでなく、アプリを共有する組織で使用されている IT ポリシーも考慮する必要があります。 どのアプリを組織のアプリ カタログにアップロードし、どのアプリを App Store からインストール可能にするかについては、各組織が自由に制御できます。

アプリをインストールする

Microsoft Teams でのアプリのインストールは、コンテキスト固有です。 アプリの個人用アプリの部分 (個々のユーザーに対してスコープされる要素) をインストールしても、アプリは特定のチームにはインストールされません。その逆も同様です。 特定のチームにアプリをインストールしても、アプリは他のチームにはインストールされません。 つまり、考えられるすべてのコンテキストにアプリがインストールされるとは考えにくいため、そのような状況は想定しないようにします。 どのユーザーがどのコンテキストにどのアプリをインストールできるかについては組織の IT 管理者が自由に制御できるため、アプリに対して現在操作を行っているユーザーがアプリを別のコンテキストでインストールする権限を持っているという想定も、行わないようにします。

アプリをアプリ パッケージから直接インストールすることは良くも悪くも厳しく制限されている場合が多いため、アプリ パッケージを直接共有してアプリを配布する場合は、ユーザーがアプリをインストールできることを確認する必要があります。