会話タブを作成する
会話サブエンティティは、ユーザーがタブ内のサブエンティティに関する会話を行えるようにする方法を提供します。特定のタスク、患者、営業案件など、タブ全体 (エンティティとも呼ばれます) について説明する代わりに。 従来のチャネルまたは構成可能なタブを使用すると、ユーザーはタブに関する会話を行うことができますが、より集中した会話が必要です。 集中型の会話の要件は、集中型のディスカッションができないコンテンツが多すぎる場合、またはコンテンツが時間の経過と同時に変化したために、表示されるコンテンツとは無関係な会話になる可能性があります。 会話サブエンティティは、動的タブに焦点を当てた会話エクスペリエンスを提供します。
会話サブエンティティは、チャネルでのみサポートされます。 個人用または静的タブから使用して、チャネルに既にピン留めされているタブで会話を作成または続行できます。 静的タブは、ユーザーが複数のチャネルで発生している会話を表示およびアクセスするための 1 つの場所を指定する場合に便利です。
前提条件
会話型サブエンティティをサポートするには、タブ Web アプリケーションに、バックエンド データベース内のサブエンティティ↔の会話間のマッピングを格納する機能が必要です。
conversationId
が提供されますが、ユーザーが会話を続けるには、そのconversationId
を格納し、Teams に返す必要があります。
新しい会話を開始する
新しい会話を開始するには、 openConversation()
関数を使用します。 会話の開始と継続はすべて、このメソッドによって処理されます。 関数への入力は、ユーザーの観点から見ると、会話を開始したり会話を続けたりするために、画面の右側にある会話パネルを開くアクションによって変わります。
microsoftTeams.conversations.openConversation(openConversationRequest);
openConversation は、チャネルで会話を開始するために次の入力を受け取ります。
- subEntityId: 特定のサブエンティティの ID。 たとえば、task-123 です。
- entityId: タブ インスタンスの作成時の ID。 ID は、同じタブ インスタンスを参照するために重要です。
-
channelId: タブ インスタンスが存在するチャネル。
注:
channelId はチャネル タブでは省略可能です。 ただし、チャネルと静的タブ間で実装を同じにしておく場合は、お勧めします。
- title: チャット パネルでユーザーに表示されるタイトル。
これらの値のほとんどは、 app.getContext()
API (TeamsJS v1 でmicrosoftTeams.getContext()
) から取得することもできます。 詳細については、「PageInfo インターフェース」を参照してください。
microsoftTeams.conversations.openConversation({“subEntityId”:”task-1”, “entityId”: “tabInstanceId-1”, “channelId”: ”19:baa6e71f65b948d189bf5c892baa8e5a@thread.skype”, “title”: "Task Title”});
次の図は、会話パネルを示しています。
ユーザーが会話を開始する場合は、そのイベントのコールバックをリッスンして conversationId を取得して保存することが重要です。
microsoftTeams.conversations.openConversation({
...,
onStartConversation: (conversationResponse) => {
// console.log(conversationResponse)
},
});
conversationResponse
オブジェクトには、開始された会話に関連する情報が含まれています。 後で使用するために、この応答オブジェクトのすべてのプロパティを保存することをお勧めします。
会話を続ける
会話の開始後、以降の openConversation()
呼び出しでは、 新しい会話の開始時と同じ入力を提供するだけでなく、 conversationId も含める必要があります。 適切な会話が表示されたユーザーの会話パネルが開きます。 ユーザーは、新しいメッセージまたは受信メッセージをリアルタイムで表示できます。
次の図は、適切な会話を含む会話パネルを示しています。
会話を強化する
タブに サブエンティティへのディープ リンクが含まれていることが重要です。 たとえば、チャネル会話からタブ chiclet ディープ リンクを選択するユーザーなどです。 想定される動作は、ディープ リンクを受信し、そのサブエンティティを開き、そのサブエンティティの会話パネルを開きます。
個人用または静的タブの会話サブエンティティをサポートするには、実装で何も変更する必要はありません。 既にピン留めされているチャネル タブからの会話の開始または継続のみがサポートされます。 静的タブをサポートすると、ユーザーがすべてのサブエンティティと対話するための 1 つの場所を提供できます。 静的タブで会話ビューを開くときに適切なプロパティを持つには、最初にチャネルでタブが作成されたときに、 subEntityId
、 entityId
、 channelId
を保存することが重要です。
会話を閉じる
closeConversation()
関数を呼び出すことで、会話ビューを手動で閉じることができます。
microsoftTeams.conversations.closeConversation();
また、ユーザーが会話ビューで [閉じる (X)] を選択したときに、イベントをリッスンすることもできます。
microsoftTeams.conversations.openConversation({
...,
onCloseConversation: (conversationResponse) => {
// console.log(conversationResponse)
},
});
コード サンプル
サンプルの名前 | 説明 | .NET | Node.js | マニフェスト |
---|---|---|---|---|
[会話の作成] タブ | 会話の作成タブを示すタブ サンプル アプリをMicrosoft Teamsします。 | 表示 | 表示 | 表示 |
関連項目
Platform Docs