BotFrameworkAdapter class
경고
이 API는 이제 사용되지 않습니다.
Use CloudAdapter
instead.
- Extends
-
BotAdapter
생성자
Bot |
BotFrameworkAdapter 클래스의 새 인스턴스를 만듭니다. |
속성
is |
스트리밍 컨텍스트에서 봇이 활동을 보낼 수 있도록 스트리밍 연결이 여전히 열려 있는지 확인하는 데 사용됩니다. |
Token |
상속된 속성
Bot |
|
Connector |
|
OAuth |
|
on |
메서드
상속된 메서드
continue |
시간이 지나면 사용자와의 대화를 비동기적으로 다시 시작합니다. |
continue |
시간이 지나면 사용자와의 대화를 비동기적으로 다시 시작합니다. |
continue |
시간이 지나면 사용자와의 대화를 비동기적으로 다시 시작합니다. |
create |
지정된 채널에 대화를 만듭니다. |
use((context: Turn |
어댑터의 파이프라인에 미들웨어를 추가합니다. |
생성자 세부 정보
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>
설명
이를 사전 알림이라고도 하며, 봇은 들어오는 메시지를 기다리지 않고 대화 또는 사용자에게 메시지를 사전에 보낼 수 있습니다. 예를 들어 봇은 이 방법을 사용하여 사용자에게 알림 또는 쿠폰을 보낼 수 있습니다.
자동 관리 메시지를 보내려면 다음을 수행합니다.
- 들어오는 활동에서 ConversationReference 의 복사본을 저장합니다. 예를 들어 대화 참조를 데이터베이스에 저장할 수 있습니다.
- 나중에 대화를 다시 시작하려면 이 메서드를 호출합니다. 저장된 참조를 사용하여 대화에 액세스합니다.
- 성공하면 어댑터는 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>
설명
모든 채널이 이 작업을 지원하는 것은 아닙니다. 그렇지 않은 채널의 경우 이 호출이 예외를 throw할 수 있습니다.
deleteConversationMember(TurnContext, string)
현재 대화에서 멤버를 비동기적으로 제거합니다.
function deleteConversationMember(context: TurnContext, memberId: string): Promise<void>
매개 변수
- context
-
TurnContext
턴에 대한 컨텍스트 개체입니다.
- memberId
-
string
대화에서 제거할 멤버의 ID입니다.
반환
Promise<void>
설명
대화에서 멤버의 ID 정보를 제거합니다.
모든 채널이 이 작업을 지원하는 것은 아닙니다. 그렇지 않은 채널의 경우 이 호출이 예외를 throw할 수 있습니다.
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)
Single Sign-On과 같은 토큰 교환 작업을 비동기적으로 수행합니다.
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 개체입니다.
설명
반환 값의 conversation 속성에는 ConversationMembers 개체의 페이지가 포함됩니다. 각 개체의 ID 는 봇이 이 채널에 참여한 대화의 ID입니다. 이 메서드는 봇의 서비스 URL 및 자격 증명만 필요하므로 대화 컨텍스트 외부에서 호출할 수 있습니다.
채널 일괄 처리로 인해 페이지가 생성됩니다. 결과의 continuationToken 속성이 비어 있지 않으면 가져올 페이지가 더 있습니다. 반환된 토큰을 사용하여 결과의 다음 페이지를 가져옵니다.
매개 변수가 contextOrServiceUrl
TurnContext이면 채널 서버의 URL이 에서 contextOrServiceUrl
검색됩니다. 활동.serviceUrl.
getSignInLink(TurnContext, string, AppCredentials, string, string)
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>
getSignInLink(TurnContext, string, CoreAppCredentials, string, 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>
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>)
각 스트리밍 요청에 논리 함수를 적용하여 웹 소켓 연결을 처리합니다.
function process(req: Request, socket: INodeSocket, head: INodeBuffer, logic: (context: TurnContext) => Promise<void>): Promise<void>
매개 변수
- socket
-
INodeSocket
해당 INodeSocket
- head
-
INodeBuffer
해당 INodeBuffer
- logic
-
(context: TurnContext) => Promise<void>
적용할 논리 함수
반환
Promise<void>
비동기 작업을 나타내는 promise입니다.
process(Request, Response, (context: TurnContext) => Promise<void>)
논리 함수를 적용하여 웹 요청을 처리합니다.
function process(req: Request, res: Response, logic: (context: TurnContext) => Promise<void>): Promise<void>
매개 변수
- 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>
설명
이는 봇이 들어오는 메시지를 수신하고 대화의 차례를 정의하는 주요 방법입니다. 이 메서드는 다음과 같습니다.
- 들어오는 요청을 구문 분석하고 인증합니다.
- 활동은 들어오는 요청의 본문에서 읽습니다. 작업을 구문 분석할 수 없는 경우 오류가 반환됩니다.
- 보낸 사람의 ID는 봇
appId
의 및 를 사용하여 에뮬레이터 또는 유효한 Microsoft 서버로 인증됩니다appPassword
. 보낸 사람의 ID가 확인되지 않으면 요청이 거부됩니다.
- 수신된 작업에 대한 TurnContext 개체를 만듭니다.
- 이 개체는 취소 가능한 프록시로 래핑됩니다.
- 이 메서드가 완료되면 프록시가 해지됩니다.
- 어댑터의 미들웨어 파이프라인을 통해 턴 컨텍스트를 보냅니다.
- 함수에 턴 컨텍스트를 보냅니다
logic
.- 봇은 현재 추가 라우팅 또는 처리를 수행할 수 있습니다.
프라미스를 반환하거나 처리기를
async
제공하면 어댑터가 비동기 작업이 완료될 때까지 기다립니다. - 함수가
logic
완료되면 미들웨어에서 설정한 프라미스 체인이 확인됩니다.
- 봇은 현재 추가 라우팅 또는 처리를 수행할 수 있습니다.
프라미스를 반환하거나 처리기를
팁
봇의 콘솔 출력에 오류가 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>
설명
이는 봇이 들어오는 메시지를 수신하고 대화의 차례를 정의하는 주요 방법입니다. 이 메서드는 다음과 같습니다.
- 수신된 작업에 대한 TurnContext 개체를 만듭니다.
- 이 개체는 취소 가능한 프록시로 래핑됩니다.
- 이 메서드가 완료되면 프록시가 해지됩니다.
- 어댑터의 미들웨어 파이프라인을 통해 턴 컨텍스트를 보냅니다.
- 함수에 턴 컨텍스트를 보냅니다
logic
.- 봇은 현재 추가 라우팅 또는 처리를 수행할 수 있습니다.
프라미스를 반환하거나 처리기를
async
제공하면 어댑터가 비동기 작업이 완료될 때까지 기다립니다. - 함수가
logic
완료되면 미들웨어에서 설정한 프라미스 체인이 확인됩니다.
- 봇은 현재 추가 라우팅 또는 처리를 수행할 수 있습니다.
프라미스를 반환하거나 처리기를
미들웨어는 턴을 단락 할 수 있습니다. 이 경우 후속 미들웨어와 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의 배열
설명
활동은 받은 순서대로 1회씩 전송됩니다. 전송된 각 작업에 대해 응답 개체가 반환됩니다. 활동의 경우 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를 나타내는 입니다.
설명
모든 채널이 이 작업을 지원하는 것은 아닙니다. 그렇지 않은 채널의 경우 이 호출이 예외를 throw할 수 있습니다.
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
서버가 들어오는 파이프와 나가는 파이프 모두에서 수신 대기할 때 한 번 발생하는 선택적 콜백
반환
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>
비동기 작업을 나타내는 프라미스
설명
대화를 시작하려면 봇이 해당 채널의 계정 정보와 사용자의 계정 정보를 알고 있어야 합니다. 대부분의 _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