DialogContext class
現在のダイアログのコンテキストは、特定の DialogSet に関して変わります。
注釈
これには、ターン コンテキスト、ダイアログ セットに関する情報、ダイアログ スタックの状態が含まれます。
セット内のダイアログの外部のコードから、 DialogSet.createContext を 使用してダイアログ コンテキストを作成します。 次に、ダイアログ コンテキストのメソッドを使用して、セット内のダイアログの進行を管理します。
ダイアログを実装する場合、ダイアログ コンテキストは、オーバーライドまたは実装するさまざまなメソッドで使用できるパラメーターです。
以下に例を示します。
const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();
コンストラクター
Dialog |
DialogContext クラスの新しいインスタンスを作成します。 |
Dialog |
DialogContext クラスの新しいインスタンスを作成します。 |
プロパティ
active |
|
child | |
context | ターンのコンテキスト オブジェクトを取得します。 |
dialog |
|
dialogs | このコンテキストから直接呼び出すことができるダイアログを取得します。 |
parent | このダイアログ コンテキストの親ダイアログ コンテキスト。この |
services | このダイアログ コンテキストに依存するサービス コレクションを取得します。 |
stack | 現在のダイアログ スタックを取得します。 |
state | すべてのメモリ スコープのビューを管理する DialogStateManager を取得します。 |
メソッド
begin |
ダイアログ インスタンスを開始し、ダイアログ スタックにプッシュします。 ダイアログの新しいインスタンスを作成し、スタックにプッシュします。 |
cancel |
ダイアログ スタック上のすべてのダイアログを取り消し、スタックをクリアします。 |
continue |
アクティブなダイアログがある場合は、このダイアログ コンテキストを Dialog.continueDialog メソッドに渡して、実行を続行します。 |
emit |
指定された ID を持つダイアログを検索します。 |
end |
ダイアログを終了し、スタックからポップします。 ダイアログの親にオプションの結果を返します。 |
find |
特定の ID を持つダイアログを検索します。 |
get |
DialogContext で CultureInfo を取得します。 |
prompt(string, string | Partial<Activity> | Prompt |
プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。 |
prompt(string, string | Partial<Activity> | Prompt |
プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。 |
replace |
アクティブなダイアログを終了し、その代わりに新しいダイアログを開始します。 |
reprompt |
アクティブなダイアログを要求して、ユーザーに入力を再度求めます。 |
コンストラクターの詳細
DialogContext(DialogSet, DialogContext, DialogState)
DialogContext クラスの新しいインスタンスを作成します。
new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)
パラメーター
- contextOrDC
- DialogContext
ボットの現在のターンの TurnContext オブジェクト。
- state
- DialogState
DialogState をストレージに読み書きするために使用する state オブジェクト。
注釈
DialogContext インスタンスを渡すと、ダイアログ コンテキストが複製されます。
DialogContext(DialogSet, TurnContext, DialogState)
DialogContext クラスの新しいインスタンスを作成します。
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
パラメーター
- contextOrDC
-
TurnContext
ボットの現在のターンの TurnContext オブジェクト。
- state
- DialogState
DialogState をストレージに読み書きするために使用する state オブジェクト。
注釈
DialogContext インスタンスを渡すと、ダイアログ コンテキストが複製されます。
プロパティの詳細
activeDialog
DialogInstance | undefined activeDialog
プロパティ値
DialogInstance | undefined
ダイアログ スタックの上部にあるダイアログの状態情報。スタック undefined
が空の場合は 。
child
DialogContext | undefined child
プロパティ値
DialogContext | undefined
アクティブなダイアログがコンテナーである場合の子のダイアログ コンテキスト。
context
ターンのコンテキスト オブジェクトを取得します。
context: TurnContext
プロパティ値
TurnContext
dialogManager
警告
この API は非推奨になりました。
This property serves no function.
DialogManager dialogManager
プロパティ値
現在のダイアログ マネージャー インスタンス。 このプロパティの使用は非推奨とされます。
dialogs
parent
このダイアログ コンテキストの親ダイアログ コンテキスト。この undefined
コンテキストに親がない場合は 。
parent: DialogContext | undefined
プロパティ値
DialogContext | undefined
注釈
ダイアログを開始しようとすると、ダイアログ コンテキストはダイアログ内の Dialog.id を検索 します。 このダイアログ コンテキストで開始するダイアログが見つからない場合は、その親ダイアログ コンテキストで検索が行われます。
services
このダイアログ コンテキストに依存するサービス コレクションを取得します。
services: TurnContextStateCollection
プロパティ値
TurnContextStateCollection
stack
state
すべてのメモリ スコープのビューを管理する DialogStateManager を取得します。
state: DialogStateManager
プロパティ値
メソッドの詳細
beginDialog(string, object)
ダイアログ インスタンスを開始し、ダイアログ スタックにプッシュします。 ダイアログの新しいインスタンスを作成し、スタックにプッシュします。
function beginDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
パラメーター
- dialogId
-
string
開始するダイアログの ID。
- options
-
object
省略可能。 起動時にダイアログに渡す引数。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に解決する Promise。
注釈
スタックに既にアクティブなダイアログがある場合、そのダイアログはスタック上の上部のダイアログに戻るまで一時停止されます。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
要求されたダイアログがこのダイアログ コンテキストまたはその先祖のいずれにも見つからない場合、このメソッドは例外をスローします。
以下に例を示します。
const result = await dc.beginDialog('greeting', { name: user.name });
参照
cancelAllDialogs(boolean, string, any)
ダイアログ スタック上のすべてのダイアログを取り消し、スタックをクリアします。
function cancelAllDialogs(cancelParents?: boolean, eventName?: string, eventValue?: any): Promise<DialogTurnResult>
パラメーター
- cancelParents
-
boolean
省略可能。 すべての親ダイアログも取り消される場合 true
。
- eventName
-
string
省略可能。 ダイアログが取り消されると発生するカスタム イベントの名前。 既定値は cancelDialog です。
- eventValue
-
any
省略可能。 カスタム キャンセル イベントと共に渡す値。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に解決する Promise。
注釈
これにより、スタックからダイアログを削除する前に、各ダイアログの Dialog.endDialog メソッドが呼び出されます。
スタックに最初にダイアログがあった場合、戻り値の 状態 は 取り消されます。それ以外の場合は 空です。
次の使用例は、 dc
'bookFlight' ダイアログを開始する前にダイアログ スタックをクリアします。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
参照
continueDialog()
アクティブなダイアログがある場合は、このダイアログ コンテキストを Dialog.continueDialog メソッドに渡して、実行を続行します。
function continueDialog(): Promise<DialogTurnResult>
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に解決する Promise。
注釈
呼び出しが完了したら、ターン コンテキストの 応答 プロパティを確認して、ダイアログがユーザーに返信を送信したかどうかを判断できます。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
通常は、ボットのターン ハンドラー内からこれを呼び出します。
以下に例を示します。
const result = await dc.continueDialog();
if (result.status == DialogTurnStatus.empty && dc.context.activity.type == ActivityTypes.message) {
// Send fallback message
await dc.context.sendActivity(`I'm sorry. I didn't understand.`);
}
emitEvent(string, any, boolean, boolean)
指定された ID を持つダイアログを検索します。
function emitEvent(name: string, value?: any, bubble?: boolean, fromLeaf?: boolean): Promise<boolean>
パラメーター
- name
-
string
発生させるイベントの名前。
- value
-
any
省略可能。 イベントと共に送信する値。
- bubble
-
boolean
省略可能。 ローカルで処理されない場合にイベントを親にバブルするかどうかを制御するフラグ。 既定値は の true
値です。
- fromLeaf
-
boolean
省略可能。 イベントがリーフ ノードから出力されるかどうか。
戻り値
Promise<boolean>
true
イベントが処理された場合は 。
注釈
現在のダイアログまたはそれを開始したユーザーが処理する名前付きイベントを生成します。
endDialog(any)
ダイアログを終了し、スタックからポップします。 ダイアログの親にオプションの結果を返します。
function endDialog(result?: any): Promise<DialogTurnResult>
パラメーター
- result
-
any
省略可能。 親ロジックに渡す結果。 これは、スタック上の次のダイアログ、またはこれがスタックの最後のダイアログ、親ダイアログ コンテキスト、またはボットのターン ハンドラーである場合です。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に対する promise 解決。
注釈
親ダイアログは、ダイアログ スタック上の次のダイアログ (存在する場合) です。 このメソッドは、親の Dialog.resumeDialog メソッドを呼び出し、終了ダイアログによって返される結果を渡します。 親ダイアログがない場合、ターンは終了し、返されたオブジェクトの result プロパティを使用してボットで 結果 を使用できます。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
通常は、特定のダイアログのロジック内からこれを呼び出して、ダイアログが完了したことをダイアログ コンテキストに通知し、ダイアログをスタックから削除し、親ダイアログを再開します。
以下に例を示します。
return await dc.endDialog(returnValue);
参照
findDialog(string)
特定の ID を持つダイアログを検索します。
function findDialog(dialogId: string): Dialog | undefined
パラメーター
- dialogId
-
string
検索するダイアログの ID。
戻り値
Dialog | undefined
指定された ID のダイアログ。
注釈
このダイアログ コンテキストに関連付けられている DialogSet で開始するダイアログが見つからない場合は、親ダイアログ コンテキストでダイアログを検索しようとします。
参照
getLocale()
DialogContext で CultureInfo を取得します。
function getLocale(): string
戻り値
string
ロケール文字列。
prompt(string, string | Partial<Activity> | PromptOptions)
プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions): Promise<DialogTurnResult>
パラメーター
- dialogId
-
string
開始するプロンプト ダイアログの ID。
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
ユーザーを送信するための初期プロンプトのテキスト、最初のプロンプトとして送信するアクティビティ、またはプロンプト ダイアログの書式を設定するオブジェクト。
戻り値
Promise<DialogTurnResult>
注釈
このヘルパー メソッドは、 パラメーターとして使用するオブジェクトを options
書式設定し、 beginDialog を呼び出して、指定したプロンプト ダイアログを開始します。
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])
プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。
function prompt(dialogId: string, promptOrOptions: string | Partial<Activity> | PromptOptions, choices: string | Choice[]): Promise<DialogTurnResult>
パラメーター
- dialogId
-
string
開始するプロンプト ダイアログの ID。
- promptOrOptions
-
string | Partial<Activity> | PromptOptions
ユーザーを送信する最初のプロンプトのテキスト、最初のプロンプトとして送信する アクティビティ 、またはプロンプト ダイアログの書式設定に使用するオブジェクト。
- choices
-
string | Choice[]
省略可能。 ChoicePrompt で使用するために、ユーザーが選択できる選択肢の配列。
戻り値
Promise<DialogTurnResult>
注釈
このヘルパー メソッドは、 パラメーターとして使用するオブジェクトを options
書式設定し、 beginDialog を呼び出して、指定したプロンプト ダイアログを開始します。
return await dc.prompt('confirmPrompt', `Are you sure you'd like to quit?`);
replaceDialog(string, object)
アクティブなダイアログを終了し、その代わりに新しいダイアログを開始します。
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
パラメーター
- dialogId
-
string
開始するダイアログの ID。
- options
-
object
省略可能。 起動時に新しいダイアログに渡す引数。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に対する promise 解決。
注釈
これは、ループを作成したり、別のダイアログにリダイレクトしたりする場合に特に便利です。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
このメソッドは、現在のダイアログを終了し、新しいダイアログをすぐに開始するのと似ています。 ただし、親ダイアログは再開も通知もされません。
参照
repromptDialog()
アクティブなダイアログを要求して、ユーザーに入力を再度求めます。
function repromptDialog(): Promise<void>
戻り値
Promise<void>
注釈
これにより、アクティブなダイアログの repromptDialog メソッドが呼び出されます。
以下に例を示します。
await dc.repromptDialog();