次の方法で共有


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>

随意。 このアダプター インスタンスに使用する設定。

注釈

settings パラメーター channelService または 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 またはインスタンスの資格情報プロパティから適切な対象ユーザーを派生させます。

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 またはインスタンスの資格情報プロパティから派生します。

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

エミュレートされた OAuth カードをエミュレーターに送信する true。カードを送信しないように 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 プロパティが空でない場合は、取得するページが他にもあります。 返されたトークンを使用して、結果の次のページを取得します。 contextOrServiceUrl パラメーターが TurnContextの場合、チャネル サーバーの 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 は、ボットの appIdappPasswordを使用して、エミュレーターまたは有効な 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 関数は呼び出されません。ただし、この時点より前のすべてのミドルウェアは、引き続き完了まで実行されます。 ミドルウェア パイプラインの詳細については、ボットの のしくみとミドルウェア 記事 を参照してください。 アダプターの メソッドを使用して、アダプターにミドルウェアを追加します。

例えば:

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

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>

操作の ResourceResponse を表す Promise

注釈

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

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 から継承