会話タブを作成する
会話サブエンティティは、ユーザーがタブ内のサブエンティティに関する会話を行えるようにする方法を提供します。特定のタスク、患者、営業案件など、タブ全体 (エンティティとも呼ばれます) について説明する代わりに。 従来のチャネルまたは構成可能なタブを使用すると、ユーザーはタブに関する会話を行うことができますが、より集中した会話が必要です。 集中型の会話の要件は、集中型のディスカッションができないコンテンツが多すぎる場合、またはコンテンツが時間の経過と同時に変化したために、表示されるコンテンツとは無関係な会話になる可能性があります。 会話サブエンティティは、動的タブに焦点を当てた会話エクスペリエンスを提供します。
会話サブエンティティは、チャネルでのみサポートされます。 個人用または静的タブから使用して、チャネルに既にピン留めされているタブで会話を作成または続行できます。 静的タブは、ユーザーが複数のチャネルで発生している会話を表示およびアクセスするための 1 つの場所を指定する場合に便利です。
前提条件
会話型サブエンティティをサポートするには、タブ Web アプリケーションに、バックエンド データベース内のサブエンティティ↔の会話間のマッピングを格納する機能が必要です。 conversationId
は提供されますが、ユーザーが会話を続けるには、それをconversationId
格納して Teams に返す必要があります。
新しい会話を開始する
新しい会話を開始するには、 関数を使用します openConversation()
。 会話の開始と継続はすべて、このメソッドによって処理されます。 関数への入力は、ユーザーの観点から見ると、会話を開始したり会話を続けたりするために、画面の右側にある会話パネルを開くアクションによって変わります。
microsoftTeams.conversations.openConversation(openConversationRequest);
openConversation は、チャネルで会話を開始するために次の入力を受け取ります。
- subEntityId: 特定のサブエンティティの ID。 たとえば、task-123 です。
- entityId: タブ インスタンスの作成時の ID。 ID は、同じタブ インスタンスを参照するために重要です。
- channelId: タブ インスタンスが存在するチャネル。
注:
channelId はチャネル タブでは省略可能です。 ただし、チャネルと静的タブ間で実装を同じにしておく場合は、お勧めします。
- title: チャット パネルでユーザーに表示されるタイトル。
これらの値のほとんどは、API (microsoftTeams.getContext()
TeamsJS v1) からapp.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
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示