Microsoft Graph を使用してユーザー用にボットを事前にインストールする

アプリをインストールしていないユーザーや以前に操作したユーザーにメッセージを送信する必要がある場合 (たとえば、organizationのすべてのユーザーに重要な情報をブロードキャストする) 場合は、Microsoft Graph APIを使用して、それらのユーザーのボットを事前にインストールできます。 ボットがユーザーに事前にメッセージを送信するには、個人用アプリとして、またはユーザーがメンバーであるチームにインストールする必要があります。

この記事では、Microsoft Graph を使用してインストール状態をチェックし、ボットをプログラムでインストールする方法について説明します。 インストール後、会話 ID を取得し、ユーザーに 1:1 メッセージを送信する方法については、「 個人用ウェルカム メッセージを送信する」を参照してください。

アクセス許可

Microsoft Graph teamsAppInstallation リソースの種類のアクセス許可は、Microsoft Teams プラットフォーム内のすべてのユーザー (個人) またはチーム (チャネル) スコープに対するアプリのインストール ライフサイクルを管理するのに役立ちます。

アプリケーションのアクセス許可 説明
TeamsAppInstallation.ReadWriteSelfForUser.All Teams アプリは、事前のサインインや使用なしで、任意のユーザーの読み取り、インストール、アップグレード、アンインストールを行うことができます。
TeamsAppInstallation.ReadWriteSelfForTeam.All ユーザーがサインインしていない状態で、任意のチームに対して Teams アプリが自分自身を読み取り、インストール、アップグレード、アンインストールすることを許可します。

これらのアクセス許可を使用するには、次の値を持つ webApplicationInfo キーをアプリ マニフェスト (以前は Teams アプリ マニフェスト) に追加する必要があります。

  • id: Microsoft Entra アプリ ID。
  • リソース: アプリのリソース URL。

注:

  • インストールは他のユーザー向けであるため、ボットにはアプリケーションが必要であり、ユーザーが委任したアクセス許可は必要ありません。

  • Microsoft Entra管理者は、アプリケーションへのアクセス許可を明示的に付与する必要があります。 アプリケーションにアクセス許可が付与されると、Microsoft Entra テナントのすべてのメンバーが付与されたアクセス許可を取得します。

プロアクティブなボットをインストールしてメッセージングを有効にする

重要

Microsoft Graph では、organizationのアプリ ストアまたは Microsoft Teams ストアに発行されたアプリのみをインストールできます。

Teams 用のプロアクティブ メッセージング ボットを作成して発行する

作業を開始するには、organizationのアプリ ストアまたは Teams ストアにあるプロアクティブ メッセージング機能を備えた Teams用のボットが必要です。

ヒント

運用環境対応の Company Communicator アプリ テンプレートは、ブロードキャスト メッセージングを許可し、プロアクティブなボット アプリケーションを構築するための優れたスタートです。

アプリの teamsAppId を入手する

teamsAppId は次の方法で取得できます。

  • 組織のアプリ カタログから:

    Microsoft Graph ページ リファレンス:teamsApp リソースの種類

    HTTP GET リクエスト:

    GET https://graph.microsoft.com/v1.0/appCatalogs/teamsApps?$filter=externalId eq '{IdFromManifest}'
    

    リクエストは、アプリのカタログで生成されたアプリ ID である teamsApp オブジェクト id を返す必要があります。 これは、アプリ マニフェストで指定した ID とは異なります。

    {
      "value": [
        {
          "id": "b1c5353a-7aca-41b3-830f-27d5218fe0e5",
          "externalId": "f31b1263-ba99-435a-a679-911d24850d7c",
          "name": "Test App",
          "version": "1.0.1",
          "distributionMethod": "Organization"
        }
      ]
    }
    

    注:

    アプリが Teams ストアにある場合、 teamsAppIdIdFromManifest と同じであり、この場合は externalId を使用しないでください。

  • 個人用スコープ内のユーザーに対してアプリが既にアップロードされている場合:

    Microsoft Graph ページ リファレンス:ユーザー用にインストールされたアプリの一覧表示

    HTTP GET リクエスト:

    GET https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps?$expand=teamsApp&$filter=teamsApp/externalId eq '{IdFromManifest}'
    
  • チーム スコープ内のチャネルに対してアプリが既にアップロードされている場合:

    Microsoft Graph ページ リファレンス:チーム内のアプリを一覧表示する

    HTTP GET リクエスト:

    GET https://graph.microsoft.com/v1.0/teams/{team-id}/installedApps?$expand=teamsApp&$filter=teamsApp/externalId eq '{IdFromManifest}'
    

    ヒント

    結果の一覧を絞り込むには、 teamsApp オブジェクトの任意のフィールドをフィルター処理できます。

メッセージ受信者にボットがインストールされているかどうかを判断する

次のように、ボットがメッセージ受信者にインストールされているかどうかを判断できます。

Microsoft Graph ページ リファレンス:ユーザー用にインストールされたアプリの一覧表示

HTTP GET リクエスト:

GET https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps?$expand=teamsApp&$filter=teamsApp/id eq '{teamsAppId}'

要求は次を返します。

  • アプリがインストールされていない場合は空の配列。
  • アプリがインストールされている場合は、単一 の teamsAppInstallation オブジェクトを持つ配列。

サイトにアプリ パーツをインストールします。

アプリは次のようにインストールできます。

Microsoft Graph ページ リファレンス:ユーザー用アプリのインストール

HTTP POST リクエスト

POST https://graph.microsoft.com/v1.0/users/{user-id}/teamwork/installedApps
Content-Type: application/json

{
   "teamsApp@odata.bind" : "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps/{teamsAppId}"
}

ユーザーが Microsoft Teams を実行している場合は、アプリのインストールが直ちに行われます。 インストールされているアプリを表示するには、再起動が必要になる場合があります。

次の手順については、「 個人用ウェルカム メッセージを送信 する」を参照して、会話 ID を取得し、ユーザーに 1:1 メッセージを送信する方法について説明します。

コード サンプル

サンプルの名前 説明 .NET Node.js
アプリのプロアクティブ インストールとプロアクティブ通知の送信 このサンプル アプリケーションでは、Teams アプリのプロアクティブ インストールと、Microsoft Graph API を使用してユーザーに通知を送信する方法を示します。 表示 表示

追加のコード サンプル

関連項目