ComponentDialog class
他の子ダイアログを含むダイアログの基本クラス。
- Extends
注釈
コンポーネント ダイアログを使用すると、ボットのロジックを、別の ComponentDialog
または DialogSet
にダイアログとして追加できるコンポーネントに分割できます。 コンポーネントは、ノード パッケージの一部としてエクスポートし、他のボット内で使用することもできます。
新しいコンポーネントを定義するには、ComponentDialog からクラスを派生させ、クラス コンストラクター内に子ダイアログを追加します。
const { ComponentDialog, WaterfallDialog, TextPrompt, NumberPrompt } = require('botbuilder-dialogs');
class FillProfileDialog extends ComponentDialog {
constructor(dialogId) {
super(dialogId);
// Add control flow dialogs
this.addDialog(new WaterfallDialog('start', [
async (step) => {
// Ask user their name
return await step.prompt('namePrompt', `What's your name?`);
},
async (step) => {
// Remember the users answer
step.values['name'] = step.result;
// Ask user their age.
return await step.prompt('agePrompt', `Hi ${step.values['name']}. How old are you?`);
},
async (step) => {
// Remember the users answer
step.values['age'] = step.result;
// End the component and return the completed profile.
return await step.endDialog(step.values);
}
]));
// Add prompts
this.addDialog(new TextPrompt('namePrompt'));
this.addDialog(new NumberPrompt('agePrompt'))
}
}
module.exports.FillProfileDialog = FillProfileDialog;
その後、コンポーネントの新しいインスタンスを別の DialogSet
または ComponentDialog
に追加できます。
const dialogs = new DialogSet(dialogState);
dialogs.add(new FillProfileDialog('fillProfile'));
コンストラクター
Component |
Dialog クラスの新しいインスタンスを作成します。 |
プロパティ
id | ダイアログの一意の ID。 ダイアログの一意の ID を設定します。 |
telemetry |
テレメトリ クライアントを設定し、すべての子ダイアログにも適用します。 コンポーネントに追加された今後のダイアログも、このクライアントを継承します。 現在のテレメトリ クライアントを取得します。 |
継承されたプロパティ
dialogs | コンテナー ダイアログ セット。 |
End |
既定のターン終了の結果を取得します。 |
メソッド
add |
DialogSetの内部コンポーネントに子 |
begin |
ダイアログが開始され、親のダイアログ スタックにプッシュされたときに呼び出されます。 既定では、これは、InitialDialogId で定義されているコンポーネント ダイアログの初期ダイアログの Dialog.BeginDialogAsync(DialogContext, object, CancellationToken) メソッドを呼び出します。 割り込みロジックを実装するには、派生クラスでこのメソッドをオーバーライドします。 |
continue |
ダイアログがアクティブなダイアログであり、ユーザーが新しい |
create |
内部ダイアログ コンテキストを作成します。 |
end |
ダイアログ の終了時に呼び出されます。 |
reprompt |
ダイアログがユーザーに入力を再度求める必要があるときに呼び出されます。 |
resume |
親のダイアログ スタック上の子ダイアログがこのターンを完了し、このダイアログ コンポーネントに制御を返したときに呼び出されます。 |
継承されたメソッド
configure(Record<string, unknown>) | オブジェクトを構成するための Fluent メソッド。 |
find |
以前にコンテナーに追加された子ダイアログを検索します。 |
get |
|
get |
再デプロイ時のボットの変更の検出に役立つエンコードされた文字列。 |
on |
現在のダイアログまたは現在のダイアログが開始したダイアログによって、 |
コンストラクターの詳細
ComponentDialog(string)
Dialog クラスの新しいインスタンスを作成します。
new ComponentDialog(dialogId?: string)
パラメーター
- dialogId
-
string
随意。 ダイアログの一意の ID。
プロパティの詳細
id
ダイアログの一意の ID。 ダイアログの一意の ID を設定します。
string id
プロパティ値
string
ダイアログの ID。
注釈
これは、指定されていない場合は自動的に生成されます。
telemetryClient
テレメトリ クライアントを設定し、すべての子ダイアログにも適用します。 コンポーネントに追加された今後のダイアログも、このクライアントを継承します。 現在のテレメトリ クライアントを取得します。
BotTelemetryClient telemetryClient
プロパティ値
BotTelemetryClient
ログ記録に使用する BotTelemetryClient。
継承されたプロパティの詳細
dialogs
EndOfTurn
既定のターン終了の結果を取得します。
static EndOfTurn: DialogTurnResult
プロパティ値
注釈
この結果は、ダイアログ (またはダイアログ内の論理ステップ) が現在のターンの処理を完了し、まだアクティブであり、より多くの入力を待機していることを示します。
メソッドの詳細
addDialog(Dialog)
DialogSetの内部コンポーネントに子
function addDialog(dialog: Dialog): this
パラメーター
戻り値
this
操作の完了後に ComponentDialog。
注釈
コンポーネントに追加された最初の子の Dialog.id は、initialDialogId プロパティに割り当てられます。
beginDialog(DialogContext, O)
ダイアログが開始され、親のダイアログ スタックにプッシュされたときに呼び出されます。 既定では、これは、InitialDialogId で定義されているコンポーネント ダイアログの初期ダイアログの Dialog.BeginDialogAsync(DialogContext, object, CancellationToken) メソッドを呼び出します。 割り込みロジックを実装するには、派生クラスでこのメソッドをオーバーライドします。
function beginDialog(outerDC: DialogContext, options?: O): Promise<DialogTurnResult>
パラメーター
- outerDC
- DialogContext
現在の会話ターンの親 DialogContext。
- options
-
O
オプション。ダイアログに渡す初期情報。
戻り値
Promise<DialogTurnResult>
非同期操作を表す Promise。
注釈
タスクが成功した場合、結果は、ダイアログによってターンが処理された後もダイアログがアクティブかどうかを示します。
continueDialog(DialogContext)
ダイアログがアクティブなダイアログであり、ユーザーが新しい
function continueDialog(outerDC: DialogContext): Promise<DialogTurnResult>
パラメーター
- outerDC
- DialogContext
現在の会話ターンの親 DialogContext。
戻り値
Promise<DialogTurnResult>
非同期操作を表す Promise。
注釈
タスクが成功した場合、結果は、ダイアログによってターンが処理された後もダイアログがアクティブかどうかを示します。 結果に戻り値が含まれる場合もあります。
createChildContext(DialogContext)
内部ダイアログ コンテキストを作成します。
function createChildContext(outerDC: DialogContext): DialogContext
パラメーター
- outerDC
- DialogContext
外部ダイアログ コンテキスト
戻り値
作成されたダイアログ コンテキスト。
endDialog(TurnContext, DialogInstance, DialogReason)
ダイアログ の終了時に呼び出されます。
function endDialog(context: TurnContext, instance: DialogInstance, reason: DialogReason): Promise<void>
パラメーター
- context
-
TurnContext
このターンの TurnContext オブジェクト。
- instance
- DialogInstance
このコンポーネントのインスタンスに関連付けられている状態情報は、親のダイアログ スタック ダイアログ。
- reason
- DialogReason
ダイアログが終了 理由。
戻り値
Promise<void>
非同期操作を表す Promise。
注釈
このメソッドが親ダイアログのコンテキストから呼び出されると、コンポーネント Dialog は、終了する前にその内部ダイアログ スタック上のすべてのダイアログを取り消します。
repromptDialog(TurnContext, DialogInstance)
ダイアログがユーザーに入力を再度求める必要があるときに呼び出されます。
function repromptDialog(context: TurnContext, instance: DialogInstance): Promise<void>
パラメーター
- context
-
TurnContext
このターンの TurnContext オブジェクト。
- instance
- DialogInstance
このダイアログの状態情報。
戻り値
Promise<void>
非同期操作を表す Promise。
resumeDialog(DialogContext, DialogReason, any)
親のダイアログ スタック上の子ダイアログがこのターンを完了し、このダイアログ コンポーネントに制御を返したときに呼び出されます。
function resumeDialog(outerDC: DialogContext, _reason: DialogReason, _result?: any): Promise<DialogTurnResult>
パラメーター
- outerDC
- DialogContext
会話の現在のターンの DialogContext。
- _reason
- DialogReason
ダイアログが再開された理由。
- _result
-
any
オプション。呼び出されたダイアログから返される値。 返される値の型は、子ダイアログに依存します。
戻り値
Promise<DialogTurnResult>
非同期操作を表す Promise。
注釈
タスクが成功した場合、結果は、このダイアログ ターンが処理された後もこのダイアログがアクティブかどうかを示します。
一般に、子ダイアログは、親のコンテキストで beginDialog(DialogContext, object) を呼び出して開始されました。 ただし、DialogContext.replaceDialog(string, object) メソッドが呼び出された場合、論理子ダイアログは元のダイアログとは異なる場合があります。
このメソッドがオーバーライド
継承済みメソッドの詳細
configure(Record<string, unknown>)
オブジェクトを構成するための Fluent メソッド。
function configure(config: Record<string, unknown>): this
パラメーター
- config
-
Record<string, unknown>
適用する構成設定。
戻り値
this
操作が完了した後の 構成可能な。
継承構成可能。構成
findDialog(string)
以前にコンテナーに追加された子ダイアログを検索します。
function findDialog(dialogId: string): Dialog | undefined
パラメーター
- dialogId
-
string
参照するダイアログの ID。
戻り値
Dialog | undefined
見つかった場合のダイアログ。それ以外の場合は null。
getConverter(string)
function getConverter(_property: string): Converter | ConverterFactory
パラメーター
- _property
-
string
条件付きセレクター構成のキー。
戻り値
セレクター構成のコンバーター。
getVersion()
再デプロイ時のボットの変更の検出に役立つエンコードされた文字列。
function getVersion(): string
戻り値
string
ダイアログを再起動する方法でダイアログが変更された場合にのみ変更する一意の文字列。
注釈
既定では、id versionChanged
イベントが発生します。 このイベントがボットによって処理されない場合は、エラーがスローされ、ボットのエラー ハンドラー ロジックが実行されます。
空の文字列を返すと、コンポーネントのバージョン追跡がすべて無効になります。
onDialogEvent(DialogContext, DialogEvent)
現在のダイアログまたは現在のダイアログが開始したダイアログによって、DialogContext.emitEvent()
を使用してイベントが発生したときに呼び出されます。
function onDialogEvent(dc: DialogContext, e: DialogEvent): Promise<boolean>
パラメーター
会話の現在のターンのダイアログ コンテキスト。
発生しているイベント。
戻り値
Promise<boolean>
True の 場合は、イベントが現在のダイアログで処理され、バブルを停止する必要があります。