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 をストレージに読み取りおよび書き込み
注釈
DialogContext インスタンスを渡すと、ダイアログ コンテキストが複製されます。
DialogContext(DialogSet, TurnContext, DialogState)
DialogContext クラスの新しいインスタンスを作成します。
new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)
パラメーター
- contextOrDC
-
TurnContext
ボットの現在のターンの TurnContext オブジェクト。
- state
- DialogState
DialogState をストレージに読み取りおよび書き込み
注釈
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 });
も参照
- endDialog を
する - プロンプト
- replaceDialog
- Dialog.beginDialog
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 メソッドが呼び出されます。
最初にスタックにダイアログがあった場合、戻り値の
次の使用例は、"bookFlight" ダイアログを開始する前に、ダイアログ スタック dc
クリアします。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
も参照
- endDialog を
する
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 メソッドを呼び出し、終了ダイアログによって返された結果を渡します。 親ダイアログがない場合、ターンは終了し、結果は返されたオブジェクトの 結果 プロパティを通じてボットで使用できます。
返されたオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を示します。
通常は、特定のダイアログのロジック内からこれを呼び出して、ダイアログが完了したことをダイアログ コンテキストに通知し、ダイアログをスタックから削除し、親ダイアログを再開します。
例えば:
return await dc.endDialog(returnValue);
も参照
- beginDialog を
する - replaceDialog
- Dialog.endDialog
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>
注釈
このヘルパー メソッドは、
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>
注釈
このヘルパー メソッドは、
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。
注釈
これは、ループを作成したり、別のダイアログにリダイレクトしたりする場合に特に便利です。
返されたオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を示します。
このメソッドは、現在のダイアログを終了し、新しいダイアログをすぐに開始するのと似ています。 ただし、親ダイアログは再開も通知もされません。
も参照
- beginDialog を
する - endDialog を
する
repromptDialog()
アクティブなダイアログに対して、ユーザーに入力を再度求めるメッセージを表示するように要求します。
function repromptDialog(): Promise<void>
戻り値
Promise<void>
注釈
これにより、アクティブなダイアログの repromptDialog メソッドが呼び出されます。
例えば:
await dc.repromptDialog();