Share via


BotFrameworkAdapter class

警告

この API は非推奨になりました。

Use CloudAdapter instead.

Extends

BotAdapter

コンストラクター

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

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

プロパティ

isStreamingConnectionOpen

ストリーミング コンテキストで使用され、ボットがアクティビティを送信するためにストリーミング接続がまだ開いているかどうかを確認します。

TokenApiClientCredentialsKey

継承されたプロパティ

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

メソッド

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

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

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

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

createConnectorClient(string)

コネクタ クライアントを作成します。

createConnectorClientWithIdentity(string, ClaimsIdentity)

ClaimsIdentity を使用して ConnectorClient を作成します。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

ClaimsIdentity と明示的な対象ユーザーを含む ConnectorClient を作成します。

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

チャネル上のユーザーとの会話を非同期的に作成して開始します。

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

チャネル上のユーザーとの会話を非同期的に作成して開始します。

deleteActivity(TurnContext, Partial<ConversationReference>)

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

deleteConversationMember(TurnContext, string)

現在の会話からメンバーを非同期的に削除します。

emulateOAuthCards(TurnContext | string, boolean)

チャネルのエミュレートされた OAuth カードを非同期的に送信します。 このメソッドはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

シングル サインオンなどのトークン交換操作を非同期的に実行します。

getAadTokens(TurnContext, string, string[])

トークン サーバーからユーザーを非同期的にサインアウトします。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)
getActivityMembers(TurnContext, string)

特定のアクティビティのメンバーを非同期的に一覧表示します。

getConversationMembers(TurnContext)

現在の会話のメンバーを非同期的に一覧表示します。

getConversations(TurnContext | string, string)

指定されたチャネルの場合、このボットが参加している会話のページを非同期的に取得します。

getSignInLink(TurnContext, string, AppCredentials, string, string)

SigninCard の一部として送信できるサインイン リンクをトークン サーバーから非同期的に取得します。

getSignInLink(TurnContext, string, CoreAppCredentials, string, string)
getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

サインインのためにユーザーに送信される未加工のサインイン リソースを非同期的に取得します。

getTokenStatus(TurnContext, string, string)

特定のユーザーに対して構成された各接続のトークンの状態を非同期的に取得します。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)
getUserToken(TurnContext, string, string)

ログイン フロー内のユーザーのトークンを非同期的に取得しようとします。

getUserToken(TurnContext, string, string, CoreAppCredentials)
process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

各ストリーミング要求にロジック関数を適用して、Web ソケット接続を処理します。

process(Request, Response, (context: TurnContext) => Promise<void>)

ロジック関数を適用して Web 要求を処理します。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

ターン コンテキストを非同期的に作成し、受信アクティビティのミドルウェア パイプラインを実行します。

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

ターン コンテキストを非同期的に作成し、受信アクティビティのミドルウェア パイプラインを実行します。

processRequest(IReceiveRequest)

要求の有効性を確認し、適切な仮想エンドポイントのマッピングを試み、必要に応じて応答を生成して返します。

sendActivities(TurnContext, Partial<Activity>[])

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

signOutUser(TurnContext, string, string)

トークン サーバーからユーザーを非同期的にサインアウトします。

signOutUser(TurnContext, string, string, CoreAppCredentials)
updateActivity(TurnContext, Partial<Activity>)

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

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

ハンドラーを名前付きパイプ サーバーに接続し、受信要求のリッスンを開始します。

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

最初の要求を処理して、ストリーミング サーバー経由で有効期間の長い接続を確立します。

継承されたメソッド

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

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

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

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

コンストラクターの詳細

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

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

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

パラメーター

settings

Partial<BotFrameworkAdapterSettings>

省略可能。 このアダプター インスタンスに使用する設定。

注釈

パラメーターに settingschannelService 値または openIdMetadata 値が含まれていない場合、コンストラクターはプロセスの環境変数でこれらの値をチェックします。 これらの値は、ボットが Azure にプロビジョニングされている場合に設定できます。その場合は、ボットがグローバル クラウドまたは国内クラウドで適切に動作するために必要です。

BotFrameworkAdapterSettings クラスは、使用可能なアダプター設定を定義します。

プロパティの詳細

isStreamingConnectionOpen

ストリーミング コンテキストで使用され、ボットがアクティビティを送信するためにストリーミング接続がまだ開いているかどうかを確認します。

boolean isStreamingConnectionOpen

プロパティ値

boolean

ストリーミング接続が開いている場合は True、それ以外の場合は false。

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

プロパティ値

symbol

継承されたプロパティの詳細

BotIdentityKey

BotIdentityKey: symbol

プロパティ値

symbol

継承元 BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

プロパティ値

symbol

継承元 BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

プロパティ値

symbol

継承元 BotAdapter.OAuthScopeKey

onTurnError

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

プロパティ値

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

継承元 BotAdapter.onTurnError

メソッドの詳細

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

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

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

パラメーター

reference

Partial<ConversationReference>

続行する会話への参照。

logic

(context: TurnContext) => Promise<void>

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

戻り値

Promise<void>

注釈

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

プロアクティブ メッセージを送信するには:

  1. 受信アクティビティから ConversationReference のコピーを保存します。 たとえば、会話参照をデータベースに格納できます。
  2. 後で会話を再開するには、このメソッドを呼び出します。 保存した参照を使用して会話にアクセスします。
  3. 成功すると、アダプターは TurnContext オブジェクトを生成し、関数ハンドラーを logic 呼び出します。 プロアクティブ メッセージを logic 送信するには、 関数を使用します。

会話内の受信アクティビティから参照をコピーするには、 TurnContext.getConversationReference メソッドを 使用します。

このメソッドは processActivity メソッドに似ています。 アダプターは TurnContext を作成し、ハンドラーを呼び出す前にミドルウェアを logic 介してルーティングします。 作成されたアクティビティの 種類 は 'event' で 、名前 は 'continueConversation' です。

以下に例を示します。

server.post('/api/notifyUser', async (req, res) => {
   // Lookup previously saved conversation reference.
   const reference = await findReference(req.body.refId);

   // Proactively notify the user.
   if (reference) {
      await adapter.continueConversation(reference, async (context) => {
         await context.sendActivity(req.body.message);
      });
      res.send(200);
   } else {
      res.send(404);
   }
});

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

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

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

パラメーター

reference

Partial<ConversationReference>

(xref:botframework-schema。会話の ConversationReference) をクリックして続行します。

oAuthScope

string

メッセージ交換を続行するために呼び出す、送信されたアクティビティまたは関数の目的の受信者。

logic

(context: TurnContext) => Promise<void>

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

戻り値

Promise<void>

createConnectorClient(string)

コネクタ クライアントを作成します。

function createConnectorClient(serviceUrl: string): ConnectorClient

パラメーター

serviceUrl

string

クライアントのサービス URL。

戻り値

ConnectorClient

ConnectorClient インスタンス。

注釈

単体テスト用のモック コネクタ クライアントを作成するには、派生クラスでこれをオーバーライドします。

createConnectorClientWithIdentity(string, ClaimsIdentity)

ClaimsIdentity を使用して ConnectorClient を作成します。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity): Promise<ConnectorClient>

パラメーター

serviceUrl

string

クライアントのサービス URL。

identity

ClaimsIdentity

ClaimsIdentity

戻り値

Promise<ConnectorClient>

注釈

ClaimsIdentity に Skills 要求の要求が含まれている場合は、Skills で使用する ConnectorClient を作成します。 ClaimsIdentity またはインスタンスの credentials プロパティから適切な対象ユーザーを派生させます。

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

ClaimsIdentity と明示的な対象ユーザーを含む ConnectorClient を作成します。

function createConnectorClientWithIdentity(serviceUrl: string, identity: ClaimsIdentity, audience: string): Promise<ConnectorClient>

パラメーター

serviceUrl

string

クライアントのサービス URL。

identity

ClaimsIdentity

ClaimsIdentity

audience

string

ConnectorClient のメッセージの受信者。 通常は、Bot Framework チャネル サービスまたは別のボットの AppId。

戻り値

Promise<ConnectorClient>

注釈

トリミングされた対象ユーザーが長さ 0 以外の文字列でない場合、対象ユーザーは ClaimsIdentity またはインスタンスの credentials プロパティから派生します。

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

チャネル上のユーザーとの会話を非同期的に作成して開始します。

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

パラメーター

reference

Partial<ConversationReference>

作成する会話の参照。

logic

(context: TurnContext) => Promise<void>

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

戻り値

Promise<void>

非同期操作を表す promise

createConversation(Partial<ConversationReference>, Partial<ConversationParameters>, (context: TurnContext) => Promise<void>)

チャネル上のユーザーとの会話を非同期的に作成して開始します。

function createConversation(reference: Partial<ConversationReference>, parameters: Partial<ConversationParameters>, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

reference

Partial<ConversationReference>

作成する会話の参照。

parameters

Partial<ConversationParameters>

会話の作成時に使用されるパラメーター

logic

(context: TurnContext) => Promise<void>

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

戻り値

Promise<void>

非同期操作を表す promise

deleteActivity(TurnContext, Partial<ConversationReference>)

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

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

パラメーター

context

TurnContext

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

reference

Partial<ConversationReference>

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

戻り値

Promise<void>

注釈

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

deleteConversationMember(TurnContext, string)

現在の会話からメンバーを非同期的に削除します。

function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>

パラメーター

context

TurnContext

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

memberId

string

会話から削除するメンバーの ID。

戻り値

Promise<void>

注釈

会話からメンバーの ID 情報を削除します。

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

emulateOAuthCards(TurnContext | string, boolean)

チャネルのエミュレートされた OAuth カードを非同期的に送信します。 このメソッドはフレームワークをサポートしており、コードに対して直接呼び出されるものではありません。

function emulateOAuthCards(contextOrServiceUrl: TurnContext | string, emulate: boolean): Promise<void>

パラメーター

contextOrServiceUrl

TurnContext | string

エミュレーターの URL。

emulate

boolean

true エミュレートされた OAuth カードをエミュレーターに送信する場合は 。カード false を送信しない場合は 。

戻り値

Promise<void>

注釈

Bot Framework Emulatorでボットをテストする場合、このメソッドは OAuth カードの相互作用をエミュレートできます。

exchangeToken(TurnContext, string, string, TokenExchangeRequest, CoreAppCredentials)

シングル サインオンなどのトークン交換操作を非同期的に実行します。

function exchangeToken(context: TurnContext, connectionName: string, userId: string, tokenExchangeRequest: TokenExchangeRequest, appCredentials?: CoreAppCredentials): Promise<TokenResponse>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

userId

string

トークンに関連付けられるユーザー ID。

tokenExchangeRequest

TokenExchangeRequest

交換要求の詳細。交換するトークンまたは交換する URI。

appCredentials

CoreAppCredentials

省略可能。 OAuth の CoreAppCredentials。

戻り値

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

トークン サーバーからユーザーを非同期的にサインアウトします。

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[]): Promise<[key: string]: TokenResponse>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

resourceUrls

string[]

トークンを取得するリソース URL の一覧。

戻り値

Promise<[key: string]: TokenResponse>

リソース URL ごとの TokenResponse オブジェクトのマップ。

getAadTokens(TurnContext, string, string[], CoreAppCredentials)

function getAadTokens(context: TurnContext, connectionName: string, resourceUrls: string[], oAuthAppCredentials?: CoreAppCredentials): Promise<[key: string]: TokenResponse>

パラメーター

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

戻り値

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

特定のアクティビティのメンバーを非同期的に一覧表示します。

function getActivityMembers(context: TurnContext, activityId?: string): Promise<ChannelAccount[]>

パラメーター

context

TurnContext

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

activityId

string

省略可能。 メンバーを取得するアクティビティの ID。 指定しない場合は、現在のアクティビティ ID が使用されます。

戻り値

Promise<ChannelAccount[]>

特定のアクティビティに関係するユーザーの ChannelAccount オブジェクトの配列。

注釈

特定のアクティビティに関係するユーザーの ChannelAccount オブジェクトの配列を返します。

これは getConversationMembers とは異なり、会話のすべてのメンバーではなく、アクティビティに直接関係するユーザーのみを返すという点で異なります。

getConversationMembers(TurnContext)

現在の会話のメンバーを非同期的に一覧表示します。

function getConversationMembers(context: TurnContext): Promise<ChannelAccount[]>

パラメーター

context

TurnContext

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

戻り値

Promise<ChannelAccount[]>

会話に現在関係しているすべてのユーザーの ChannelAccount オブジェクトの配列。

注釈

会話に現在関係しているすべてのユーザーの ChannelAccount オブジェクトの配列を返します。

これは、特定のアクティビティに直接関係するメンバーだけでなく、会話のすべてのメンバーを返すという点で 、getActivityMembers とは異なります。

getConversations(TurnContext | string, string)

指定されたチャネルの場合、このボットが参加している会話のページを非同期的に取得します。

function getConversations(contextOrServiceUrl: TurnContext | string, continuationToken?: string): Promise<ConversationsResult>

パラメーター

contextOrServiceUrl

TurnContext | string

クエリを実行するチャネル サーバーの URL、またはチャネル上の会話からの TurnContext オブジェクト。

continuationToken

string

省略可能。 結果の前のページからの継続トークン。 このパラメーターを省略するか、 を使用 undefined して結果の最初のページを取得します。

戻り値

Promise<ConversationsResult>

結果のページと継続トークンを含む ConversationsResult オブジェクト。

注釈

戻り値の conversations プロパティには、 ConversationMembers オブジェクトのページが含まれています。 各オブジェクトの ID は、ボットがこのチャネルに参加している会話の ID です。 このメソッドは、ボットのサービス URL と資格情報のみが必要なので、会話のコンテキストの外部から呼び出すことができます。

チャネルバッチの結果はページになります。 結果の continuationToken プロパティが空でない場合は、取得するページが増えます。 返されたトークンを使用して、結果の次のページを取得します。 パラメーターが contextOrServiceUrlTurnContext の場合、チャネル サーバーの URL は から contextOrServiceUrl取得されます。アクティビティserviceUrl

SigninCard の一部として送信できるサインイン リンクをトークン サーバーから非同期的に取得します。

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: AppCredentials, userId?: string, finalRedirect?: string): Promise<string>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

oAuthAppCredentials

AppCredentials

OAuth の AppCredentials。

userId

string

トークンに関連付けられるユーザー ID。

finalRedirect

string

OAuth フローがリダイレクトする最後の URL。

戻り値

Promise<string>

function getSignInLink(context: TurnContext, connectionName: string, oAuthAppCredentials?: CoreAppCredentials, userId?: string, finalRedirect?: string): Promise<string>

パラメーター

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

戻り値

Promise<string>

getSignInResource(TurnContext, string, string, string, CoreAppCredentials)

サインインのためにユーザーに送信される未加工のサインイン リソースを非同期的に取得します。

function getSignInResource(context: TurnContext, connectionName: string, userId?: string, finalRedirect?: string, appCredentials?: CoreAppCredentials): Promise<SignInUrlResponse>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

userId

string

トークンに関連付けられるユーザー ID。

finalRedirect

string

OAuth フローがリダイレクトする最後の URL。

appCredentials

CoreAppCredentials

省略可能。 OAuth の CoreAppCredentials。

戻り値

Promise<SignInUrlResponse>

BotSignInGetSignInResourceResponse オブジェクト。

getTokenStatus(TurnContext, string, string)

特定のユーザーに対して構成された各接続のトークンの状態を非同期的に取得します。

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string): Promise<TokenStatus[]>

パラメーター

context

TurnContext

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

userId

string

省略可能。 存在する場合は、トークンの状態を取得するユーザーの ID。 それ以外の場合は、現在のアクティビティを送信したユーザーの ID が使用されます。

includeFilter

string

省略可能。 含める接続のコンマ区切りの一覧。 存在する場合、 パラメーターは includeFilter 、このメソッドが返すトークンを制限します。

戻り値

Promise<TokenStatus[]>

取得した TokenStatus オブジェクト。

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

function getTokenStatus(context: TurnContext, userId?: string, includeFilter?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenStatus[]>

パラメーター

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

戻り値

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

ログイン フロー内のユーザーのトークンを非同期的に取得しようとします。

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string): Promise<TokenResponse>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

magicCode

string

省略可能。 ユーザーが入力した検証コード。

戻り値

Promise<TokenResponse>

ユーザー トークンを含む TokenResponse オブジェクト。

getUserToken(TurnContext, string, string, CoreAppCredentials)

function getUserToken(context: TurnContext, connectionName: string, magicCode?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<TokenResponse>

パラメーター

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

戻り値

Promise<TokenResponse>

process(Request, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<void>)

各ストリーミング要求にロジック関数を適用して、Web ソケット接続を処理します。

function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

req
Request

受信 HTTP 要求

socket

INodeSocket

対応する INodeSocket

head

INodeBuffer

対応する INodeBuffer

logic

(context: TurnContext) => Promise<void>

適用するロジック関数

戻り値

Promise<void>

非同期操作を表す promise。

process(Request, Response, (context: TurnContext) => Promise<void>)

ロジック関数を適用して Web 要求を処理します。

function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>

パラメーター

req
Request

受信 HTTP 要求

res
Response

対応する HTTP 応答

logic

(context: TurnContext) => Promise<void>

適用するロジック関数

戻り値

Promise<void>

非同期操作を表す promise。

processActivity(WebRequest, WebResponse, (context: TurnContext) => Promise<any>)

ターン コンテキストを非同期的に作成し、受信アクティビティのミドルウェア パイプラインを実行します。

function processActivity(req: WebRequest, res: WebResponse, logic: (context: TurnContext) => Promise<any>): Promise<void>

パラメーター

req
WebRequest

Express または Restify スタイルの要求オブジェクト。

res
WebResponse

Express または Restify スタイルの応答オブジェクト。

logic

(context: TurnContext) => Promise<any>

ミドルウェア パイプラインの末尾でを呼び出す関数。

戻り値

Promise<void>

注釈

これは、ボットが受信メッセージを受信し、会話のターンを定義する主な方法です。 このメソッドは以下の操作を行います。

  1. 受信要求を解析して認証します。
    • アクティビティは、受信要求の本文から読み取られます。 アクティビティを解析できない場合は、エラーが返されます。
    • 送信者の ID は、ボット appId の と appPasswordを使用して、エミュレーターまたは有効な Microsoft サーバーとして認証されます。 送信者の ID が検証されていない場合、要求は拒否されます。
  2. 受信したアクティビティの TurnContext オブジェクトを作成します。
    • このオブジェクトは、 取り消し可能なプロキシでラップされます。
    • このメソッドが完了すると、プロキシは取り消されます。
  3. アダプターのミドルウェア パイプラインを介してターン コンテキストを送信します。
  4. ターン コンテキストを関数に logic 送信します。
    • ボットは、この時点で追加のルーティングまたは処理を実行する場合があります。 Promise を返す (またはハンドラーを提供する async ) と、アダプターは非同期操作の完了を待機します。
    • 関数が logic 完了すると、ミドルウェアによって設定された promise チェーンが解決されます。

ヒント

ボットのコンソール出力にエラー TypeError: Cannot perform 'set' on a proxy that has been revoked が表示される場合は、 キーワードを使用 await せずに非同期関数が使用されたことが原因である可能性があります。 すべての非同期関数で await が使用されていることを確認します。

ミドルウェアはターンを ショート させることができます。 この場合、後続の logic ミドルウェアと関数は呼び出されません。ただし、この時点より前のすべてのミドルウェアは、引き続き完了まで実行されます。 ミドルウェア パイプラインの詳細については、ボットのしくみとミドルウェア関する記事を参照してください。 アダプターの use メソッドを 使用 して、アダプターにミドルウェアを追加します。

以下に例を示します。

server.post('/api/messages', (req, res) => {
   // Route received request to adapter for processing
   adapter.processActivity(req, res, async (context) => {
       // Process any messages received
       if (context.activity.type === ActivityTypes.Message) {
           await context.sendActivity(`Hello World`);
       }
   });
});

processActivityDirect(Activity, (context: TurnContext) => Promise<any>)

ターン コンテキストを非同期的に作成し、受信アクティビティのミドルウェア パイプラインを実行します。

function processActivityDirect(activity: Activity, logic: (context: TurnContext) => Promise<any>): Promise<void>

パラメーター

activity

Activity

処理するアクティビティ。

logic

(context: TurnContext) => Promise<any>

ミドルウェア パイプラインの末尾でを呼び出す関数。

戻り値

Promise<void>

注釈

これは、ボットが受信メッセージを受信し、会話のターンを定義する主な方法です。 このメソッドは以下の操作を行います。

  1. 受信したアクティビティの TurnContext オブジェクトを作成します。
    • このオブジェクトは、 取り消し可能なプロキシでラップされます。
    • このメソッドが完了すると、プロキシは取り消されます。
  2. アダプターのミドルウェア パイプラインを介してターン コンテキストを送信します。
  3. ターン コンテキストを関数に logic 送信します。
    • ボットは、この時点で追加のルーティングまたは処理を実行する場合があります。 Promise を返す (またはハンドラーを提供する async ) と、アダプターは非同期操作の完了を待機します。
    • 関数が logic 完了すると、ミドルウェアによって設定された promise チェーンが解決されます。

ミドルウェアはターンを ショート させることができます。 この場合、後続の logic ミドルウェアと関数は呼び出されません。ただし、この時点より前のすべてのミドルウェアは、引き続き完了まで実行されます。 ミドルウェア パイプラインの詳細については、ボットのしくみとミドルウェア関する記事を参照してください。 アダプターの use メソッドを 使用 して、アダプターにミドルウェアを追加します。

processRequest(IReceiveRequest)

要求の有効性を確認し、適切な仮想エンドポイントのマッピングを試み、必要に応じて応答を生成して返します。

function processRequest(request: IReceiveRequest): Promise<StreamingResponse>

パラメーター

request

IReceiveRequest

接続されているチャネルからの ReceiveRequest。

戻り値

Promise<StreamingResponse>

BotAdapter によって作成され、要求を発生させたクライアントに送信される応答。

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 が含まれます。

signOutUser(TurnContext, string, string)

トークン サーバーからユーザーを非同期的にサインアウトします。

function signOutUser(context: TurnContext, connectionName?: string, userId?: string): Promise<void>

パラメーター

context

TurnContext

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

connectionName

string

使用する認証接続の名前。

userId

string

サインアウトするユーザーの ID。

戻り値

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

function signOutUser(context: TurnContext, connectionName?: string, userId?: string, oAuthAppCredentials?: CoreAppCredentials): Promise<void>

パラメーター

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

戻り値

Promise<void>

updateActivity(TurnContext, Partial<Activity>)

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

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

パラメーター

context

TurnContext

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

activity

Partial<Activity>

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

戻り値

Promise<ResourceResponse | void>

Promise操作の ResourceResponse を表す 。

注釈

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

useNamedPipe((context: TurnContext) => Promise<any>, string, number, () => void)

ハンドラーを名前付きパイプ サーバーに接続し、受信要求のリッスンを開始します。

function useNamedPipe(logic: (context: TurnContext) => Promise<any>, pipeName?: string, retryCount?: number, onListen?: () => void): Promise<void>

パラメーター

logic

(context: TurnContext) => Promise<any>

受信要求を処理するロジック。

pipeName

string

サーバーの作成時に使用する名前付きパイプの名前。

retryCount

number

受信パイプと発信パイプのバインドを試行する回数

onListen

() => void

サーバーが受信パイプと発信パイプの両方でリッスンしているときに 1 回起動するオプションのコールバック

戻り値

Promise<void>

useWebSocket(WebRequest, INodeSocket, INodeBuffer, (context: TurnContext) => Promise<any>)

最初の要求を処理して、ストリーミング サーバー経由で有効期間の長い接続を確立します。

function useWebSocket(req: WebRequest, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<any>): Promise<void>

パラメーター

req
WebRequest

接続要求。

socket

INodeSocket

ボット (サーバー) とチャネル/呼び出し元 (クライアント) の間の未加工のソケット接続。

head

INodeBuffer

アップグレードされたストリームの最初のパケット。

logic

(context: TurnContext) => Promise<any>

WebSocket 接続の有効期間中に受信ストリーミング要求を処理するロジック。

戻り値

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

継承元 BotAdapter.continueConversationAsync

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

継承元 BotAdapter.continueConversationAsync

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

継承元 BotAdapter.continueConversationAsync

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 が含まれます。

継承元 BotAdapter.createConversationAsync

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

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

注釈

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

継承元 BotAdapter.use