ActionContext class
DialogContext を、AdaptiveDialog の実行中の一連のアクションを操作するための追加のメソッドで拡張します。
- Extends
-
DialogContext
コンストラクター
Action |
ActionContext クラスの新しいインスタンスを初期化します |
プロパティ
actions | 実行中のアクションの一覧。 |
changes | 適用するキューに登録されている変更の一覧を取得します。 |
継承されたプロパティ
active |
|
child | |
context | ターンのコンテキスト オブジェクトを取得します。 |
dialog |
|
dialogs | このコンテキストから直接呼び出すことができるダイアログを取得します。 |
parent | このダイアログ コンテキストの親ダイアログ コンテキスト。この |
services | このダイアログ コンテキストに依存するサービス コレクションを取得します。 |
stack | 現在のダイアログ スタックを取得します。 |
state | すべてのメモリ スコープのビューを管理する DialogStateManager を取得します。 |
メソッド
apply |
キューに登録された変更を適用します。 |
queue |
applyChanges() が呼び出されたときに適用される一連の変更をキューに登録します。 |
継承されたメソッド
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 |
アクティブなダイアログを要求して、ユーザーに入力を再度求めます。 |
コンストラクターの詳細
ActionContext(DialogSet, DialogContext, DialogState, ActionState[], symbol)
ActionContext クラスの新しいインスタンスを初期化します
new ActionContext(dialogs: DialogSet, parentDialogContext: DialogContext, state: DialogState, actions: ActionState[], changeKey: symbol)
パラメーター
- dialogs
-
DialogSet
アクション コンテキストを作成するダイアログ セット。
- parentDialogContext
-
DialogContext
親ダイアログ コンテキスト。
- state
-
DialogState
現在のダイアログの状態。
- actions
実行する残りのアクションの現在の一覧。
- changeKey
-
symbol
変更を保持する場所の TurnState キー。
プロパティの詳細
actions
changes
継承されたプロパティの詳細
activeDialog
activeDialog: DialogInstance | undefined
プロパティ値
DialogInstance | undefined
継承元 DialogContext.activeDialog
child
child: DialogContext | undefined
プロパティ値
DialogContext | undefined
継承元 DialogContext.child
context
ターンのコンテキスト オブジェクトを取得します。
context: TurnContext
プロパティ値
TurnContext
継承元 DialogContext.context
dialogManager
dialogManager: DialogManager
プロパティ値
DialogManager
継承元 DialogContext.dialogManager
dialogs
このコンテキストから直接呼び出すことができるダイアログを取得します。
dialogs: DialogSet
プロパティ値
DialogSet
継承元 DialogContext.dialogs
parent
このダイアログ コンテキストの親ダイアログ コンテキスト。この undefined
コンテキストに親がない場合は 。
parent: DialogContext | undefined
プロパティ値
DialogContext | undefined
注釈
ダイアログを開始しようとすると、ダイアログ コンテキストはダイアログ内の Dialog.id を検索 します。 このダイアログ コンテキストで開始するダイアログが見つからない場合は、その親ダイアログ コンテキストで検索が行われます。
継承元 DialogContext.parent
services
このダイアログ コンテキストに依存するサービス コレクションを取得します。
services: TurnContextStateCollection
プロパティ値
TurnContextStateCollection
継承元 DialogContext.services
stack
現在のダイアログ スタックを取得します。
stack: DialogInstance[]
プロパティ値
DialogInstance[]
継承元 DialogContext.stack
state
すべてのメモリ スコープのビューを管理する DialogStateManager を取得します。
state: DialogStateManager
プロパティ値
DialogStateManager
継承元 DialogContext.state
メソッドの詳細
applyChanges()
キューに登録された変更を適用します。
function applyChanges(): Promise<boolean>
戻り値
Promise<boolean>
適用する変更があった場合は True。
queueChanges(ActionChangeList)
applyChanges() が呼び出されたときに適用される一連の変更をキューに登録します。
function queueChanges(changes: ActionChangeList)
パラメーター
- changes
- ActionChangeList
キューに入る変更を計画します。
継承済みメソッドの詳細
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 });
参照
継承元 DialogContext.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 メソッドが呼び出されます。
スタックに最初にダイアログがあった場合、戻り値の 状態 は 取り消されます。それ以外の場合は 空です。
次の使用例は、 dc
'bookFlight' ダイアログを開始する前にダイアログ スタックをクリアします。
await dc.cancelAllDialogs();
return await dc.beginDialog('bookFlight');
参照
継承元 DialogContext.cancelAllDialogs
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.`);
}
継承元 DialogContext.continueDialog
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
イベントが処理された場合は 。
注釈
現在のダイアログまたはそれを開始したユーザーが処理する名前付きイベントを生成します。
継承元 DialogContext.emitEvent
endDialog(any)
ダイアログを終了し、スタックからポップします。 ダイアログの親にオプションの結果を返します。
function endDialog(result?: any): Promise<DialogTurnResult>
パラメーター
- result
-
any
省略可能。 親ロジックに渡す結果。 これは、スタック上の次のダイアログ、またはこれがスタックの最後のダイアログ、親ダイアログ コンテキスト、またはボットのターン ハンドラーである場合です。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に対する promise 解決。
注釈
親ダイアログは、ダイアログ スタック上の次のダイアログ (存在する場合) です。 このメソッドは、親の Dialog.resumeDialog メソッドを呼び出し、終了ダイアログによって返される結果を渡します。 親ダイアログがない場合、ターンは終了し、返されたオブジェクトの result プロパティを使用してボットで 結果 を使用できます。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
通常は、特定のダイアログのロジック内からこれを呼び出して、ダイアログが完了したことをダイアログ コンテキストに通知し、ダイアログをスタックから削除し、親ダイアログを再開します。
以下に例を示します。
return await dc.endDialog(returnValue);
参照
継承元 DialogContext.endDialog
findDialog(string)
特定の ID を持つダイアログを検索します。
function findDialog(dialogId: string): Dialog | undefined
パラメーター
- dialogId
-
string
検索するダイアログの ID。
戻り値
Dialog | undefined
指定された ID のダイアログ。
注釈
このダイアログ コンテキストに関連付けられている DialogSet で開始するダイアログが見つからない場合は、親ダイアログ コンテキストでダイアログを検索しようとします。
参照
継承元 DialogContext.findDialog
getLocale()
DialogContext で CultureInfo を取得します。
function getLocale(): string
戻り値
string
ロケール文字列。
継承元 DialogContext.getLocale
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?`);
継承元 DialogContext.prompt
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?`);
継承元 DialogContext.prompt
replaceDialog(string, object)
アクティブなダイアログを終了し、その代わりに新しいダイアログを開始します。
function replaceDialog(dialogId: string, options?: object): Promise<DialogTurnResult>
パラメーター
- dialogId
-
string
開始するダイアログの ID。
- options
-
object
省略可能。 起動時に新しいダイアログに渡す引数。
戻り値
Promise<DialogTurnResult>
ダイアログ ターンの結果に対する promise 解決。
注釈
これは、ループを作成したり、別のダイアログにリダイレクトしたりする場合に特に便利です。
返されるオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を表します。
このメソッドは、現在のダイアログを終了し、新しいダイアログをすぐに開始するのと似ています。 ただし、親ダイアログは再開も通知もされません。
参照
継承元 DialogContext.replaceDialog
repromptDialog()
アクティブなダイアログを要求して、ユーザーに入力を再度求めます。
function repromptDialog(): Promise<void>
戻り値
Promise<void>
注釈
これにより、アクティブなダイアログの repromptDialog メソッドが呼び出されます。
以下に例を示します。
await dc.repromptDialog();
継承元 DialogContext.repromptDialog