次の方法で共有


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 をストレージに読み取りおよび書き込み 使用する状態オブジェクト。

注釈

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

DialogContext(DialogSet, TurnContext, DialogState)

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

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

パラメーター

dialogs
DialogSet

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

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

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

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 メソッドが呼び出されます。

最初にスタックにダイアログがあった場合、戻り値の 状態 は取り消 。それ以外の場合は、空の

次の使用例は、"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);

も参照

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>

注釈

このヘルパー メソッドは、 パラメーターとして使用するオブジェクトを書式設定し、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>

注釈

このヘルパー メソッドは、 パラメーターとして使用するオブジェクトを書式設定し、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。

注釈

これは、ループを作成したり、別のダイアログにリダイレクトしたりする場合に特に便利です。

返されたオブジェクトの 状態 は、このメソッドが完了した後のダイアログ スタックの状態を示します。

このメソッドは、現在のダイアログを終了し、新しいダイアログをすぐに開始するのと似ています。 ただし、親ダイアログは再開も通知もされません。

も参照

  • beginDialog を する
  • endDialog を する

repromptDialog()

アクティブなダイアログに対して、ユーザーに入力を再度求めるメッセージを表示するように要求します。

function repromptDialog(): Promise<void>

戻り値

Promise<void>

注釈

これにより、アクティブなダイアログの repromptDialog メソッドが呼び出されます。

例えば:

await dc.repromptDialog();