BotAdapter class

ボットをサービス エンドポイントに接続できるボット アダプターのコア動作を定義します。

注釈

ボット アダプターでは、認証プロセスのカプセル化、および Bot Connector Service との間でのアクティビティの送受信が行われます。 ボットがアクティビティを受信すると、アダプターによってターン コンテキスト オブジェクトが作成され、ボット アプリケーション ロジックに渡され、応答がユーザーのチャネルに返されます。

アダプターは、ボット ミドルウェア パイプラインを介して受信アクティビティを処理し、ボット ロジックに転送してから、もう一度やり直します。 各アクティビティがボットを出入りして流れる際、ボット ロジックの実行前と実行後のどちらでも、各ミドルウェアがアクティビティを検査または操作できます。 アダプターのミドルウェア コレクションにミドルウェア オブジェクトを追加するには、use メソッドを使用します。

詳細については、ボットのしくみとミドルウェアに関する記事を参照してください。

プロパティ

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

ミドルウェアまたはアプリケーションの例外をキャッチできるエラー ハンドラーを取得または設定します。 ミドルウェアまたはアプリケーションの例外をキャッチできるエラー ハンドラーを設定します。

メソッド

continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

指定したチャネルに会話を作成します。

deleteActivity(TurnContext, Partial<ConversationReference>)

既存のアクティビティを非同期的に削除します。 このインターフェイスはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 ボット コードからアクティビティを削除するには、 TurnContext.deleteActivity を使用します。

sendActivities(TurnContext, Partial<Activity>[])

送信アクティビティのセットをチャネル サーバーに非同期的に送信します。 このメソッドはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 ボット コードからターン コンテキストの sendActivity メソッドまたは sendActivities メソッドを使用します。

updateActivity(TurnContext, Partial<Activity>)

以前のアクティビティを更新されたバージョンに非同期的に置き換えます。 このインターフェイスはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 TurnContext.updateActivity を使用して、ボット コードからアクティビティを更新します。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

アダプターのパイプラインにミドルウェアを追加します。

プロパティの詳細

BotIdentityKey

BotIdentityKey: symbol

プロパティ値

symbol

ConnectorClientKey

ConnectorClientKey: symbol

プロパティ値

symbol

OAuthScopeKey

OAuthScopeKey: symbol

プロパティ値

symbol

onTurnError

ミドルウェアまたはアプリケーションの例外をキャッチできるエラー ハンドラーを取得または設定します。 ミドルウェアまたはアプリケーションの例外をキャッチできるエラー ハンドラーを設定します。

(context: TurnContext, error: Error) => Promise<void> onTurnError

プロパティ値

(context: TurnContext, error: Error) => Promise<void>

非同期操作を表す promise。

注釈

エラー ハンドラーは、次のパラメーターを使用して呼び出されます。

名前 説明
context TurnContext ターンのコンテキスト オブジェクト。
error Error Node.js エラーがスローされました。

メソッドの詳細

continueConversation(Partial<ConversationReference>, (revocableContext: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

function continueConversation(reference: Partial<ConversationReference>, logic: (revocableContext: TurnContext) => Promise<void>): Promise<void>

パラメーター

reference

Partial<ConversationReference>

続行する会話への参照。

logic

(revocableContext: TurnContext) => Promise<void>

アダプター ミドルウェアの実行後に呼び出す非同期メソッド。

戻り値

Promise<void>

注釈

これは多くの場合、 プロアクティブ通知と呼ばれ、ボットは受信メッセージを待たずに会話またはユーザーにメッセージを事前に送信できます。 たとえば、ボットはこのメソッドを使用して、ユーザーに通知やクーポンを送信できます。

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

claimsIdentity

ClaimsIdentity

会話の ClaimsIdentity

reference

Partial<ConversationReference>

続行するスレッドの部分的な ConversationReference

logic

(context: TurnContext) => Promise<void>

アダプター ミドルウェアの実行後に呼び出す非同期メソッド。

戻り値

Promise<void>

非同期操作を表す promise

continueConversationAsync(ClaimsIdentity, Partial<ConversationReference>, string, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

function continueConversationAsync(claimsIdentity: ClaimsIdentity, reference: Partial<ConversationReference>, audience: string, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

claimsIdentity

ClaimsIdentity

会話の ClaimsIdentity

reference

Partial<ConversationReference>

続行するスレッドの部分的な ConversationReference

audience

string

プロアクティブ メッセージの受信者を示す 値。

logic

(context: TurnContext) => Promise<void>

アダプター ミドルウェアの実行後に呼び出す非同期メソッド。

戻り値

Promise<void>

非同期操作を表す promise

continueConversationAsync(string, Partial<ConversationReference>, (context: TurnContext) => Promise<void>)

しばらくしてからユーザーとの会話を非同期的に再開します。

function continueConversationAsync(botAppId: string, reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

botAppId

string

ボットのアプリケーション ID。 このパラメーターは、アダプター (コンソール、テストなど) のシングル テナントでは無視されますが、マルチテナント対応の BotFrameworkAdapter にとって重要です。

reference

Partial<ConversationReference>

続行するスレッドの部分的な ConversationReference

logic

(context: TurnContext) => Promise<void>

アダプター ミドルウェアの実行後に呼び出す非同期メソッド。

戻り値

Promise<void>

非同期操作を表す promise

createConversationAsync(string, string, string, string, ConversationParameters, (context: TurnContext) => Promise<void>)

指定したチャネルに会話を作成します。

function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

_botAppId

string

ボットのアプリケーション ID。

_channelId

string

チャネルの ID。

_serviceUrl

string

チャネルの ID。

_audience

string

コネクタの対象ユーザー。

_conversationParameters

ConversationParameters

会話の作成に使用する会話情報

_logic

(context: TurnContext) => Promise<void>

結果のボット ターンを呼び出すメソッド。

戻り値

Promise<void>

非同期操作を表す promise

注釈

会話を開始するには、ボットがそのアカウント情報と、そのチャネルのユーザーのアカウント情報を知っている必要があります。 ほとんどの_channelsは、直接メッセージ (グループ以外) の会話の開始のみをサポートしています。

アダプターは、チャネルで新しい会話を作成し、そのミドルウェア パイプラインを conversationUpdate 介してロジック メソッドにアクティビティを送信しようとします。

指定したユーザーとの会話が確立されている場合、アクティビティの会話の ID には、新しい会話の ID が含まれます。

deleteActivity(TurnContext, Partial<ConversationReference>)

既存のアクティビティを非同期的に削除します。 このインターフェイスはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 ボット コードからアクティビティを削除するには、 TurnContext.deleteActivity を使用します。

function deleteActivity(context: TurnContext, reference: Partial<ConversationReference>): Promise<void>

パラメーター

context
TurnContext

ターンのコンテキスト オブジェクト。

reference

Partial<ConversationReference>

削除するアクティビティの会話参照情報。

戻り値

Promise<void>

注釈

すべてのチャネルでこの操作がサポートされているわけではありません。 そうでないチャネルの場合、この呼び出しでは例外がスローされる可能性があります。

sendActivities(TurnContext, Partial<Activity>[])

送信アクティビティのセットをチャネル サーバーに非同期的に送信します。 このメソッドはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 ボット コードからターン コンテキストの sendActivity メソッドまたは sendActivities メソッドを使用します。

function sendActivities(context: TurnContext, activities: Partial<Activity>[]): Promise<ResourceResponse[]>

パラメーター

context
TurnContext

ターンのコンテキスト オブジェクト。

activities

Partial<Activity>[]

送信するアクティビティ。

戻り値

Promise<ResourceResponse[]>

ResourceResponse の配列

注釈

アクティビティは、受信した順序で順番に送信されます。 送信されたアクティビティごとに応答オブジェクトが返されます。 アクティビティの場合 message 、配信されたメッセージの ID が含まれます。

updateActivity(TurnContext, Partial<Activity>)

以前のアクティビティを更新されたバージョンに非同期的に置き換えます。 このインターフェイスはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。 TurnContext.updateActivity を使用して、ボット コードからアクティビティを更新します。

function updateActivity(context: TurnContext, activity: Partial<Activity>): Promise<ResourceResponse | void>

パラメーター

context
TurnContext

ターンのコンテキスト オブジェクト。

activity

Partial<Activity>

置き換えるアクティビティの更新されたバージョン。

戻り値

Promise<ResourceResponse | void>

注釈

すべてのチャネルでこの操作がサポートされているわけではありません。 そうでないチャネルの場合、この呼び出しでは例外がスローされる可能性があります。

use((context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[])

アダプターのパイプラインにミドルウェアを追加します。

function use(middlewares: (context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]): this

パラメーター

middlewares

(context: TurnContext, next: () => Promise<void>) => Promise<void> | Middleware[]

追加するミドルウェアまたはミドルウェア ハンドラー。

戻り値

this

更新されたアダプター オブジェクト。

注釈

ミドルウェアは、初期化時にアダプターに追加されます。 各ターンでは、アダプターはミドルウェアを追加した順序で呼び出します。