DialogContext class

現在のダイアログのコンテキストは、特定の DialogSet に関して変わります。

注釈

これには、ターン コンテキスト、ダイアログ セットに関する情報、ダイアログ スタックの状態が含まれます。

セット内のダイアログの外部のコードから、 DialogSet.createContext を 使用してダイアログ コンテキストを作成します。 次に、ダイアログ コンテキストのメソッドを使用して、セット内のダイアログの進行を管理します。

ダイアログを実装する場合、ダイアログ コンテキストは、オーバーライドまたは実装するさまざまなメソッドで使用できるパラメーターです。

以下に例を示します。

const dc = await dialogs.createContext(turnContext);
const result = await dc.continueDialog();

コンストラクター

DialogContext(DialogSet, DialogContext, DialogState)

DialogContext クラスの新しいインスタンスを作成します。

DialogContext(DialogSet, TurnContext, DialogState)

DialogContext クラスの新しいインスタンスを作成します。

プロパティ

activeDialog
child
context

ターンのコンテキスト オブジェクトを取得します。

dialogManager
dialogs

このコンテキストから直接呼び出すことができるダイアログを取得します。

parent

このダイアログ コンテキストの親ダイアログ コンテキスト。この undefined コンテキストに親がない場合は 。

services

このダイアログ コンテキストに依存するサービス コレクションを取得します。

stack

現在のダイアログ スタックを取得します。

state

すべてのメモリ スコープのビューを管理する DialogStateManager を取得します。

メソッド

beginDialog(string, object)

ダイアログ インスタンスを開始し、ダイアログ スタックにプッシュします。 ダイアログの新しいインスタンスを作成し、スタックにプッシュします。

cancelAllDialogs(boolean, string, any)

ダイアログ スタック上のすべてのダイアログを取り消し、スタックをクリアします。

continueDialog()

アクティブなダイアログがある場合は、このダイアログ コンテキストを Dialog.continueDialog メソッドに渡して、実行を続行します。

emitEvent(string, any, boolean, boolean)

指定された ID を持つダイアログを検索します。

endDialog(any)

ダイアログを終了し、スタックからポップします。 ダイアログの親にオプションの結果を返します。

findDialog(string)

特定の ID を持つダイアログを検索します。

getLocale()

DialogContext で CultureInfo を取得します。

prompt(string, string | Partial<Activity> | PromptOptions)

プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。

prompt(string, string | Partial<Activity> | PromptOptions, string | Choice[])

プロンプト ダイアログを呼び出すためのオプションの書式設定を簡略化するヘルパー関数。

replaceDialog(string, object)

アクティブなダイアログを終了し、その代わりに新しいダイアログを開始します。

repromptDialog()

アクティブなダイアログを要求して、ユーザーに入力を再度求めます。

コンストラクターの詳細

DialogContext(DialogSet, DialogContext, DialogState)

DialogContext クラスの新しいインスタンスを作成します。

new DialogContext(dialogs: DialogSet, contextOrDC: DialogContext, state: DialogState)

パラメーター

dialogs
DialogSet

ダイアログ コンテキストを作成する DialogSet

contextOrDC
DialogContext

ボットの現在のターンの TurnContext オブジェクト。

state
DialogState

DialogState をストレージに読み書きするために使用する state オブジェクト。

注釈

DialogContext インスタンスを渡すと、ダイアログ コンテキストが複製されます。

DialogContext(DialogSet, TurnContext, DialogState)

DialogContext クラスの新しいインスタンスを作成します。

new DialogContext(dialogs: DialogSet, contextOrDC: TurnContext, state: DialogState)

パラメーター

dialogs
DialogSet

ダイアログ コンテキストを作成する DialogSet

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

このコンテキストから直接呼び出すことができるダイアログを取得します。

dialogs: DialogSet

プロパティ値

parent

このダイアログ コンテキストの親ダイアログ コンテキスト。この undefined コンテキストに親がない場合は 。

parent: DialogContext | undefined

プロパティ値

DialogContext | undefined

注釈

ダイアログを開始しようとすると、ダイアログ コンテキストはダイアログ内の Dialog.id を検索 します。 このダイアログ コンテキストで開始するダイアログが見つからない場合は、その親ダイアログ コンテキストで検索が行われます。

services

このダイアログ コンテキストに依存するサービス コレクションを取得します。

services: TurnContextStateCollection

プロパティ値

TurnContextStateCollection

stack

現在のダイアログ スタックを取得します。

stack: DialogInstance[]

プロパティ値

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();