次の方法で共有


ConversationState class

ボットの会話状態を読み取り、ストレージに書き込みます。

Extends

注釈

ボットがユーザーまたはグループとやり取りする各会話には、会話のターン間に会話追跡情報を保持するために使用できる独自の分離ストレージ オブジェクトがあります。 この状態情報は、clear()呼び出すことによって、いつでもリセットできます。

const { ConversationState, MemoryStorage } = require('botbuilder');

const conversationState = new ConversationState(new MemoryStorage());

コンストラクター

ConversationState(Storage, string)

新しい ConversationState インスタンスを作成します。

メソッド

getStorageKey(TurnContext)

現在の会話状態のストレージ キーを返します。

継承されたメソッド

clear(TurnContext)

ターンの現在の状態オブジェクトをクリアします。

createProperty<T>(string)

個々のプロパティを読み取ってボット状態ストレージ オブジェクトに書き込むための新しいプロパティ アクセサーを作成します。

delete(TurnContext)

現在のターンのバッキング状態オブジェクトを削除します。

get(TurnContext)

キャッシュされた状態オブジェクトを返すか、キャッシュされていない場合は未定義を返します。

load(TurnContext, boolean)

ターンのバッキング状態オブジェクトを読み取ってキャッシュします。

saveChanges(TurnContext, boolean)

キャッシュされた状態オブジェクトが変更された場合に保存します。

コンストラクターの詳細

ConversationState(Storage, string)

新しい ConversationState インスタンスを作成します。

new ConversationState(storage: Storage, namespace?: string)

パラメーター

storage
Storage

会話の状態を保持するストレージ プロバイダー。

namespace

string

(省略可能) ストレージ キーに追加する名前空間。 既定値は空の文字列です。

メソッドの詳細

getStorageKey(TurnContext)

現在の会話状態のストレージ キーを返します。

function getStorageKey(context: TurnContext): string | undefined

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

戻り値

string | undefined

現在の会話状態のストレージ キー。

継承済みメソッドの詳細

clear(TurnContext)

ターンの現在の状態オブジェクトをクリアします。

function clear(context: TurnContext): Promise<void>

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

戻り値

Promise<void>

非同期操作を表す Promise。

注釈

saveChanges() が呼び出されるまで、クリアされた状態オブジェクトは保持されません。

await botState.clear(context);
await botState.saveChanges(context);

botState.clear から継承

createProperty<T>(string)

個々のプロパティを読み取ってボット状態ストレージ オブジェクトに書き込むための新しいプロパティ アクセサーを作成します。

function createProperty<T>(name: string): StatePropertyAccessor<T>

パラメーター

name

string

追加するプロパティの名前。

戻り値

プロパティのアクセサー。

botState.createProperty から継承

delete(TurnContext)

現在のターンのバッキング状態オブジェクトを削除します。

function delete(context: TurnContext): Promise<void>

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

戻り値

Promise<void>

非同期操作を表す Promise。

注釈

状態オブジェクトが存在する場合、ストレージから削除されます。 状態オブジェクトが読み取られ、キャッシュされている場合、キャッシュはクリアされます。

await botState.delete(context);

botState.delete から継承

get(TurnContext)

キャッシュされた状態オブジェクトを返すか、キャッシュされていない場合は未定義を返します。

function get(context: TurnContext): any | undefined

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

戻り値

any | undefined

キャッシュされた状態オブジェクト。キャッシュされていない場合は未定義です。

注釈

この例では、既に読み込まれ、キャッシュされている状態オブジェクトを同期的に取得する方法を示します。

const state = botState.get(context);

botState.getから継承された

load(TurnContext, boolean)

ターンのバッキング状態オブジェクトを読み取ってキャッシュします。

function load(context: TurnContext, force?: boolean): Promise<any>

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

force

boolean

(省略可能)true キャッシュがバイパスされ、状態は常にストレージから直接読み込まれます。 既定値は false です。

戻り値

Promise<any>

キャッシュされた状態。

注釈

それ以降の読み取りでは、状態オブジェクトを強制的に再読み取りする force フラグが渡されない限り、キャッシュされたオブジェクトが返されます。

このメソッドは、作成されたプロパティ アクセサーの最初のアクセス時に自動的に呼び出されます。

const state = await botState.load(context);

BotState.load から継承

saveChanges(TurnContext, boolean)

キャッシュされた状態オブジェクトが変更された場合に保存します。

function saveChanges(context: TurnContext, force?: boolean): Promise<void>

パラメーター

context
TurnContext

ユーザーとの会話の現在のターンのコンテキスト。

force

boolean

(省略可能) true 場合、状態は変更状態に関係なく常に書き出されます。 既定値は false です。

戻り値

Promise<void>

非同期操作を表す Promise。

注釈

force フラグがキャッシュ状態オブジェクトに渡された場合は、変更されたかどうかに関係なく保存され、オブジェクトがキャッシュされていない場合は、空のオブジェクトが作成され、保存されます。

await botState.saveChanges(context);

botState.saveChanges から継承