次の方法で共有


ボット構成エクスペリエンス

ボット構成エクスペリエンスを使用すると、ユーザーは、インストール後にチャネルまたはグループ チャット スコープ内でボットの設定を直接設定および再構成できます。 これにより、ボットの運用効率が最初から向上します。 ボット構成エクスペリエンスにより、以前はアプリのタイムリーな利点を妨げ、ユーザー エクスペリエンスに影響を与えるユーザー介入を繰り返す必要がなくなります。

ボット構成エクスペリエンスを使用すると、ユーザーが次のようにボットの継続的な関連性と価値を確保できます。

  • インストール中にボットを特定のワークフローと好みに合わせて調整します。
  • インストール後の要件の変更に合わせて設定を再構成します。

たとえば、ニュース トピックを追跡して共有したり、GitHub リポジトリを監視したりするボットは、最初はユーザー ワークフローに合わせて設定できます。 後で簡単に再構成して、グループ チャットから直接新しいトピックやリポジトリに応答し、Teams 環境を離れることなくコンテンツ管理と対話を合理化できます。 この柔軟な構成エクスペリエンスにより、ボットを毎日の運用にシームレスに統合することで、ユーザー エクスペリエンスと生産性が大幅に向上します。

ユーザーがグループ チャットにボットを追加し、特定の要件に合わせてボットを構成する例を次に示します。 その後、ユーザーはボットを再構成して状態を変更します。

構成

ボットをグループ チャットに追加し、インストール中にボットの設定を構成することを示すグラフィカル表現。

再構成

メッセージ作成領域のボットの構成オプションを示すグラフィカル表現。

ボットとタブの機能をサポートするアプリの既定のランディング機能としてボットを構成するには、「既定の ランディング機能を構成する」を参照してください。

ボット構成エクスペリエンスを構築する

注:

ボット構成エクスペリエンスは、チャネルまたはグループ チャットでのみサポートされます。

ボット構成エクスペリエンスを構築するときは、ユーザーが最初のインストール時にボットを構成し、いつでも再構成できるようにする必要があります。

ボット構成エクスペリエンスを構築するには、次の手順に従います。

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

  2. ボットを構成する

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

アプリ マニフェスト (以前は Teams アプリ マニフェストと呼ばれる) ファイルで、bots.configuration オブジェクトの下にある fetchTask プロパティを次のように更新します。

"bots": [
    {
      "botId": "${{AAD_APP_CLIENT_ID}}",
     "needsChannelSelector": false,
      "scopes": [
        "personal",
        "team",
        "groupChat"
      ],
      "configuration":{
        "groupChat":{
          "fetchTask": true
        },
        "team":{
          "fetchTask": true
        }
      },
      "isNotificationOnly": false
    }
  ],

詳細については、「 アプリ マニフェスト スキーマ」を参照してください。

ボットを構成する

ユーザーがチャネルまたはグループ チャットにボットをインストールすると、アプリ マニフェスト ファイルの fetchTask プロパティによって、teamsBot.js ファイルで定義されているconfig/fetchまたはconfig/submitが開始されます。

アプリ マニフェストで fetchTask プロパティを 次のように設定した場合:

  • false: ボットはダイアログまたはアダプティブ カードをフェッチしません。 代わりに、ボットは、ボットの呼び出し時に使用される静的ダイアログまたはカードを提供する必要があります。 詳細については、「 ダイアログ」を参照してください。

  • true: ボットは、定義された config/fetch または config/submit を開始します。 ボットが呼び出されると、 channelData と userdata で提供されるコンテキストに応じて、アダプティブ カードまたはダイアログを返すことができます。

次の表に、呼び出し要求に関連付けられている応答の種類を示します。

呼び出し要求 応答の種類
config/fetch Type: "continue" または Type = "auth"
config/submit Type: "continue" または Type: "message"
  • type: "continue": type: "continue" は、ボット構成内のダイアログまたはアダプティブ カードの継続を定義するために使用されます。 型が continue に設定されている場合、ボットは、ユーザーからの追加の操作が構成プロセスを続行することを期待していることを示します。

    adaptiveCardForContinueは、ボットのワークフローのさまざまな段階で使用されるアダプティブ カードの JSON を返すカスタム関数です。 これらの関数は、ユーザーとボットとの対話に基づいて、さまざまなシナリオでアダプティブ カードを返すために使用されます。

    ユーザーが構成を送信すると、 config/submit 呼び出しがトリガーされます。 ユーザーの入力を読み取り、別のアダプティブ カードを返します。 ボット構成を更新して ダイアログを返すこともできます。

    サンプル コード リファレンス

    protected override Task<ConfigResponseBase>OnTeamsConfigFetchAsync(ITurnContext<IInvokeActivity> turnContext, JObject configData, CancellationToken cancellationToken)
    {
        ConfigResponseBase response = adaptiveCardForContinue();
        return Task.FromResult(response);
    }
    

  • type: "auth": ユーザーに要求への応答として認証 config/fetch 要求するように要求することもできます。 type: "auth"構成では、指定した URL を使用してサインインするようにユーザーに求められます。これは、ブラウザーで開くことができる有効な認証ページにリンクする必要があります。 認証は、ボットがユーザーの認証を要求するシナリオに不可欠です。 これにより、ユーザーの ID が検証され、セキュリティが維持され、ボットの機能内のエクスペリエンスがカスタマイズされます。

    注:

    type: "auth"では、サード パーティ認証のみがサポートされます。 シングル サインオン (SSO) はサポートされていません。 サード パーティ認証の詳細については、「認証の追加」を参照してください。

    サンプル コード リファレンス

    protected override Task<ConfigResponseBase>OnTeamsConfigFetchAsync(ITurnContext<IInvokeActivity> turnContext, JObject configData, CancellationToken cancellationToken)
    {
        ConfigResponseBase response = new ConfigResponse<BotConfigAuth> {
           Config = new BotConfigAuth {
              SuggestedActions = new SuggestedActions {
                 Actions = new List<CardAction> {
                    new CardAction {
                       type: "openUrl",
                       value: "https://example.com/auth",
                       title: "Sign in to this app"
                    }
                 }
              },
           Type = "auth"
        }
    };
    

  • type="message": 型が message に設定されている場合、ボットが単純なメッセージをユーザーに送信していることを示し、対話の終わりを示すか、さらに入力を必要とせずに情報を提供します。

    サンプル コード リファレンス

    protected override Task<ConfigResponseBase> OnTeamsConfigSubmitAsync(ITurnContext<IInvokeActivity> turnContext, JObject configData, CancellationToken cancellationToken)
    {
        ConfigResponseBase response = new ConfigResponse<TaskModuleResponseBase>
        {
           Config = new TaskModuleMessageResponse
           {
              Type = "message",
              Value = "You have chosen to finish setting up bot"
           }
        };
        return Task.FromResult(response);
    }
    

ユーザーがボットを再構成すると、アプリ マニフェスト ファイルの fetchTask プロパティによってボット ロジックの config/fetch が開始されます。 ユーザーは、次の 2 つの方法で、インストール後にボット設定を再構成できます。

  • @mention メッセージ作成領域のボット。 メッセージ作成領域の上に表示される [設定] オプションを選択します。 ダイアログが表示、更新、またはダイアログでボットの構成設定を変更します。

    メッセージ作成領域のボットの構成オプションを示すスクリーンショット。

  • ボットにカーソルを合わせると、ボット プロファイルカードが表示されます。 ボットの構成設定を更新または変更するには、ボット プロファイル カードの設定アイコンを選択します。

    Teams グループ チャットのボットの構成オプションを示すスクリーンショット。

ベスト プラクティス

  • ボットの個々のチャネル レベルの構成を作成する場合は、チャネルに従って構成を追跡してください。 構成データは格納されておらず、呼び出しペイロードには十分な channelData が含まれています。

  • URL、エリア パス、ダッシュボード リンクなど、ボットが正常に動作するために必要な情報を入力するようにユーザーに求めるわかりやすいダイアログを提供します。

  • ユーザーが混乱する可能性があるため、インストール後に複数の通知や構成要求を送信しないようにします。

コード サンプル

サンプルの名前 説明 .NET Node.js マニフェスト
ボット構成アプリ このサンプルでは、チームとグループ チャットでアダプティブ カードを構成および再構成するためのボットを示します。 表示 表示 表示
認証を使用したボット構成アプリ この Teams ボットでは、アダプティブ カードで動的検索機能を使用して構成と再構成を行うことができます。 表示 表示 表示

関連項目