Compartilhar via


BotFrameworkAdapter class

Aviso

Essa API foi preterida.

Use CloudAdapter instead.

Extends

BotAdapter

Construtores

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Cria uma nova instância da classe BotFrameworkAdapter.

Propriedades

isStreamingConnectionOpen

Usado em contextos de streaming para verificar se a conexão de streaming ainda está aberta para o bot enviar atividades.

TokenApiClientCredentialsKey

Propriedades herdadas

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Métodos

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

createConnectorClient(string)

Cria um cliente de conector.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Crie um ConnectorClient com uma ClaimsIdentity.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Crie um ConnectorClient com uma ClaimsIdentity e um público explícito.

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

Cria e inicia uma conversa de forma assíncrona com um usuário em um canal.

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

Cria e inicia uma conversa de forma assíncrona com um usuário em um canal.

deleteActivity(TurnContext, Partial<ConversationReference>)

Exclui de forma assíncrona uma atividade existente. Essa interface dá suporte à estrutura e não se destina a ser chamada diretamente para seu código. Use TurnContext.deleteActivity para excluir uma atividade do código do bot.

deleteConversationMember(TurnContext, string)

Remove de forma assíncrona um membro da conversa atual.

emulateOAuthCards(TurnContext | string, boolean)

Envia de forma assíncrona um cartão OAuth emulado para um canal. Esse método dá suporte à estrutura e não se destina a ser chamado diretamente para seu código.

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

Executa de forma assíncrona uma operação de troca de token, como para logon único.

getAadTokens(TurnContext, string, string[])

Assina de forma assíncrona o usuário do servidor de token.

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

Lista de forma assíncrona os membros de uma determinada atividade.

getConversationMembers(TurnContext)

Lista de forma assíncrona os membros da conversa atual.

getConversations(TurnContext | string, string)

Para o canal especificado, obtém de forma assíncrona uma página das conversas nas quais esse bot participou.

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

Obtém de forma assíncrona um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard.

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

Obtenha de forma assíncrona o recurso de entrada bruto a ser enviado ao usuário para entrar.

getTokenStatus(TurnContext, string, string)

Recupera de forma assíncrona o status do token para cada conexão configurada para o usuário fornecido.

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

Tenta de forma assíncrona recuperar o token de um usuário que está em um fluxo de logon.

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

Manipule uma conexão de soquete da Web aplicando uma função lógica a cada solicitação de streaming.

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

Processe uma solicitação da Web aplicando uma função lógica.

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

Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada.

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

Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada.

processRequest(IReceiveRequest)

Verifica a validade da solicitação e tenta mapeá-la para o ponto de extremidade virtual correto, em seguida, gera e retorna uma resposta, se apropriado.

sendActivities(TurnContext, Partial<Activity>[])

Envia de forma assíncrona um conjunto de atividades de saída para um servidor de canal. Esse método dá suporte à estrutura e não se destina a ser chamado diretamente para seu código. Use o método sendActivity ou sendActivities do contexto de turno do código do bot.

signOutUser(TurnContext, string, string)

Assina de forma assíncrona o usuário do servidor de token.

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

Substitui de forma assíncrona uma atividade anterior por uma versão atualizada. Essa interface dá suporte à estrutura e não se destina a ser chamada diretamente para seu código. Use TurnContext.updateActivity para atualizar uma atividade do código do bot.

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

Conecta o manipulador a um servidor pipe nomeado e começa a escutar solicitações de entrada.

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

Processe a solicitação inicial para estabelecer uma conexão de longa duração por meio de um servidor de streaming.

Métodos herdados

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Cria uma conversa no canal especificado.

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

Adiciona middleware ao pipeline do adaptador.

Detalhes do construtor

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Cria uma nova instância da classe BotFrameworkAdapter.

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

Parâmetros

settings

Partial<BotFrameworkAdapterSettings>

Opcional. As configurações a serem usadas para essa instância do adaptador.

Comentários

Se o parâmetro settings não incluir channelService ou valores openIdMetadata, o construtor verificará as variáveis de ambiente do processo quanto a esses valores. Esses valores podem ser definidos quando um bot é provisionado no Azure e, em caso afirmativo, são necessários para que o bot funcione corretamente na nuvem global ou em uma nuvem nacional.

A classe BotFrameworkAdapterSettings define as configurações de adaptador disponíveis.

Detalhes da propriedade

isStreamingConnectionOpen

Usado em contextos de streaming para verificar se a conexão de streaming ainda está aberta para o bot enviar atividades.

boolean isStreamingConnectionOpen

Valor da propriedade

boolean

True se a conexão de streaming estiver aberta, caso contrário, false.

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

Valor da propriedade

symbol

Detalhes das propriedades herdadas

BotIdentityKey

BotIdentityKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valor da propriedade

symbol

herdado de BotAdapter.OAuthScopeKey

onTurnError

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

Valor da propriedade

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

Herdado de BotAdapter.onTurnError

Detalhes do método

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Parâmetros

reference

Partial<ConversationReference>

Uma referência à conversa a continuar.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

Comentários

Isso geralmente é chamado de de notificação proativa, o bot pode enviar proativamente uma mensagem para uma conversa ou usuário sem esperar por uma mensagem de entrada. Por exemplo, um bot pode usar esse método para enviar notificações ou cupons para um usuário.

Para enviar uma mensagem proativa:

  1. Salve uma cópia de um conversationreference de uma atividade de entrada. Por exemplo, você pode armazenar a referência de conversa em um banco de dados.
  2. Chame esse método para retomar a conversa posteriormente. Use a referência salva para acessar a conversa.
  3. Com êxito, o adaptador gera um objeto TurnContext e chama o manipulador de funções logic. Use a função logic para enviar a mensagem proativa.

Para copiar a referência de qualquer atividade de entrada na conversa, use o método TurnContext.getConversationReference.

Esse método é semelhante ao método processActivity . O adaptador cria um TurnContext e o roteia por meio de seu middleware antes de chamar o manipulador de logic. A atividade criada terá um tipo de "evento" e um nome de "continueConversation".

Por exemplo:

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Parâmetros

reference

Partial<ConversationReference>

(xref:botframework-schema. ConversationReference) da conversa para continuar.

oAuthScope

string

O destinatário pretendido de qualquer atividade enviada ou a função a ser chamada para continuar a conversa.

logic

(context: TurnContext) => Promise<void>

Opcional. O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

createConnectorClient(string)

Cria um cliente de conector.

function createConnectorClient(serviceUrl: string): ConnectorClient

Parâmetros

serviceUrl

string

A URL de serviço do cliente.

Retornos

ConnectorClient

A instância ConnectorClient.

Comentários

Substitua isso em uma classe derivada para criar um cliente de conector fictício para teste de unidade.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Crie um ConnectorClient com uma ClaimsIdentity.

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

Parâmetros

serviceUrl

string

A URL de serviço do cliente.

identity

ClaimsIdentity

ClaimsIdentity

Retornos

Promise<ConnectorClient>

Comentários

Se a ClaimsIdentity contiver as declarações de uma solicitação de Habilidades, crie um ConnectorClient para uso com o Skills. Deriva o público-alvo correto da ClaimsIdentity ou da propriedade de credenciais da instância.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Crie um ConnectorClient com uma ClaimsIdentity e um público explícito.

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

Parâmetros

serviceUrl

string

A URL de serviço do cliente.

identity

ClaimsIdentity

ClaimsIdentity

audience

string

O destinatário das mensagens do ConnectorClient. Normalmente, o Serviço de Canal do Bot Framework ou a AppId de outro bot.

Retornos

Promise<ConnectorClient>

Comentários

Se o público-alvo cortado não for uma cadeia de caracteres de comprimento diferente de zero, o público será derivado da claimsIdentity ou da propriedade de credenciais da instância.

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

Cria e inicia uma conversa de forma assíncrona com um usuário em um canal.

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

Parâmetros

reference

Partial<ConversationReference>

Uma referência para a conversa a ser criada.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

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

Cria e inicia uma conversa de forma assíncrona com um usuário em um canal.

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

Parâmetros

reference

Partial<ConversationReference>

Uma referência para a conversa a ser criada.

parameters

Partial<ConversationParameters>

Parâmetros usados ao criar a conversa

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

deleteActivity(TurnContext, Partial<ConversationReference>)

Exclui de forma assíncrona uma atividade existente. Essa interface dá suporte à estrutura e não se destina a ser chamada diretamente para seu código. Use TurnContext.deleteActivity para excluir uma atividade do código do bot.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

reference

Partial<ConversationReference>

Informações de referência de conversa para a atividade a ser excluída.

Retornos

Promise<void>

Comentários

Nem todos os canais dão suporte a essa operação. Para canais que não o fazem, essa chamada pode gerar uma exceção.

deleteConversationMember(TurnContext, string)

Remove de forma assíncrona um membro da conversa atual.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

memberId

string

A ID do membro a ser removida da conversa.

Retornos

Promise<void>

Comentários

Remova as informações de identidade de um membro da conversa.

Nem todos os canais dão suporte a essa operação. Para canais que não o fazem, essa chamada pode gerar uma exceção.

emulateOAuthCards(TurnContext | string, boolean)

Envia de forma assíncrona um cartão OAuth emulado para um canal. Esse método dá suporte à estrutura e não se destina a ser chamado diretamente para seu código.

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

Parâmetros

contextOrServiceUrl

TurnContext | string

A URL do emulador.

emulate

boolean

true enviar um cartão OAuth emulado para o emulador; ou false para não enviar o cartão.

Retornos

Promise<void>

Comentários

Ao testar um bot no Bot Framework Emulator, esse método pode emular a interação do cartão OAuth.

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

Executa de forma assíncrona uma operação de troca de token, como para logon único.

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

Parâmetros

context

TurnContext

Contexto para a virada atual da conversa com o usuário.

connectionName

string

Nome da conexão de autenticação a ser usada.

userId

string

A ID do usuário que será associada ao token.

tokenExchangeRequest

TokenExchangeRequest

Os detalhes da solicitação de troca, um token a ser trocado ou um uri a ser trocado.

appCredentials

CoreAppCredentials

Opcional. O CoreAppCredentials para OAuth.

Retornos

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

Assina de forma assíncrona o usuário do servidor de token.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

connectionName

string

O nome da conexão de autenticação a ser usada.

resourceUrls

string[]

A lista de URLs de recurso para a qual recuperar tokens.

Retornos

Promise<[key: string]: TokenResponse>

Um mapa dos objetos TokenResponse por URL de recurso.

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

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

Parâmetros

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

Retornos

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

Lista de forma assíncrona os membros de uma determinada atividade.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

activityId

string

Opcional. A ID da atividade da qual obter os membros. Se não for especificado, a ID da atividade atual será usada.

Retornos

Promise<ChannelAccount[]>

Uma matriz de objetos ChannelAccount para os usuários envolvidos em uma determinada atividade.

Comentários

Retorna uma matriz de objetos ChannelAccount para os usuários envolvidos em uma determinada atividade.

Isso é diferente de getConversationMembers, pois retornará apenas os usuários diretamente envolvidos na atividade, nem todos os membros da conversa.

getConversationMembers(TurnContext)

Lista de forma assíncrona os membros da conversa atual.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

Retornos

Promise<ChannelAccount[]>

Uma matriz de objetos ChannelAccount para todos os usuários atualmente envolvidos em uma conversa.

Comentários

Retorna uma matriz de objetos ChannelAccount para todos os usuários atualmente envolvidos em uma conversa.

Isso é diferente de getActivityMembers, pois retornará todos os membros da conversa, não apenas aqueles diretamente envolvidos em uma atividade específica.

getConversations(TurnContext | string, string)

Para o canal especificado, obtém de forma assíncrona uma página das conversas nas quais esse bot participou.

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

Parâmetros

contextOrServiceUrl

TurnContext | string

A URL do servidor de canal a ser consultada ou um objeto TurnContext de uma conversa no canal.

continuationToken

string

Opcional. O token de continuação da página anterior dos resultados. Omita esse parâmetro ou use undefined para recuperar a primeira página de resultados.

Retornos

Promise<ConversationsResult>

Um objeto ConversationsResult que contém uma página de resultados e um token de continuação.

Comentários

A propriedade de conversas do valor retornado contém uma página de objetos ConversationMembers. A ID de cada objeto é a ID de uma conversa na qual o bot participou neste canal. Esse método pode ser chamado de fora do contexto de uma conversa, pois somente a URL de serviço e as credenciais do bot são necessárias.

Os lotes de canal resultam em páginas. Se a propriedade continuationToken do resultado não estiver vazia, haverá mais páginas para obter. Use o token retornado para obter a próxima página de resultados. Se o parâmetro contextOrServiceUrl for um TurnContext, a URL do servidor de canal será recuperada de contextOrServiceUrl.atividade.serviceUrl.

Obtém de forma assíncrona um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

connectionName

string

O nome da conexão de autenticação a ser usada.

oAuthAppCredentials

AppCredentials

AppCredentials para OAuth.

userId

string

A ID do usuário que será associada ao token.

finalRedirect

string

A URL final para a qual o fluxo OAuth será redirecionada.

Retornos

Promise<string>

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

Parâmetros

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

Retornos

Promise<string>

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

Obtenha de forma assíncrona o recurso de entrada bruto a ser enviado ao usuário para entrar.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

connectionName

string

O nome da conexão de autenticação a ser usada.

userId

string

A ID do usuário que será associada ao token.

finalRedirect

string

A URL final para a qual o fluxo OAuth será redirecionada.

appCredentials

CoreAppCredentials

Opcional. O CoreAppCredentials para OAuth.

Retornos

Promise<SignInUrlResponse>

O objeto BotSignInGetSignInResourceResponse.

getTokenStatus(TurnContext, string, string)

Recupera de forma assíncrona o status do token para cada conexão configurada para o usuário fornecido.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

userId

string

Opcional. Se estiver presente, a ID do usuário para o qual recuperar o status do token. Caso contrário, a ID do usuário que enviou a atividade atual será usada.

includeFilter

string

Opcional. Uma lista separada por vírgulas das conexões a serem incluídas. Se estiver presente, o parâmetro includeFilter limitará os tokens retornados por esse método.

Retornos

Promise<TokenStatus[]>

Os objetos TokenStatus recuperados.

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

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

Parâmetros

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

Retornos

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

Tenta de forma assíncrona recuperar o token de um usuário que está em um fluxo de logon.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

connectionName

string

O nome da conexão de autenticação a ser usada.

magicCode

string

Opcional. O código de validação que o usuário inseriu.

Retornos

Promise<TokenResponse>

Um objeto TokenResponse que contém o token de usuário.

getUserToken(TurnContext, string, string, CoreAppCredentials)

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

Parâmetros

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

Retornos

Promise<TokenResponse>

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

Manipule uma conexão de soquete da Web aplicando uma função lógica a cada solicitação de streaming.

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

Parâmetros

req
Request

Uma solicitação HTTP de entrada

socket

INodeSocket

O INodeSocket correspondente

head

INodeBuffer

O INodeBuffer correspondente

logic

(context: TurnContext) => Promise<void>

A função lógica a ser aplicada

Retornos

Promise<void>

uma promessa que representa a operação assíncrona.

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

Processe uma solicitação da Web aplicando uma função lógica.

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

Parâmetros

req
Request

Uma solicitação HTTP de entrada

res
Response

O de resposta http correspondente

logic

(context: TurnContext) => Promise<void>

A função lógica a ser aplicada

Retornos

Promise<void>

uma promessa que representa a operação assíncrona.

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

Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada.

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

Parâmetros

req
WebRequest

Um objeto de solicitação de estilo Express ou Restify.

res
WebResponse

Um objeto de resposta de estilo Express ou Restify.

logic

(context: TurnContext) => Promise<any>

A função a ser chamada no final do pipeline de middleware.

Retornos

Promise<void>

Comentários

Essa é a principal maneira de um bot receber mensagens de entrada e definir uma reviravolta na conversa. Este método:

  1. Analisa e autentica uma solicitação de entrada.
    • A atividade é lida do corpo da solicitação de entrada. Um erro será retornado se a atividade não puder ser analisada.
    • A identidade do remetente é autenticada como o Emulador ou um servidor Microsoft válido, usando o appId e o appPassworddo bot. A solicitação será rejeitada se a identidade do remetente não for verificada.
  2. Cria um objeto TurnContext para a atividade recebida.
    • Esse objeto é encapsulado com um proxy revogado.
    • Quando esse método for concluído, o proxy será revogado.
  3. Envia o contexto de turno por meio do pipeline de middleware do adaptador.
  4. Envia o contexto de turno para a função logic.
    • O bot pode executar roteamento ou processamento adicionais no momento. Retornar uma promessa (ou fornecer um manipulador de async) fará com que o adaptador aguarde a conclusão de qualquer operação assíncrona.
    • Depois que a função logic for concluída, a cadeia de promessas configurada pelo middleware será resolvida.

Ponta

Se você vir o erro TypeError: Cannot perform 'set' on a proxy that has been revoked na saída do console do bot, a causa provável é que uma função assíncrona foi usada sem usar a palavra-chave await. Verifique se todas as funções assíncronas usam await!

O middleware pode curto-circuito uma curva. Quando isso acontece, o middleware subsequente e a função logic não são chamados; no entanto, todo o middleware antes desse ponto ainda é executado até a conclusão. Para obter mais informações sobre o pipeline de middleware, consulte o como os bots funcionam e artigos de de middleware. Use o do adaptador para usar método para adicionar middleware ao adaptador.

Por exemplo:

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

Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada.

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

Parâmetros

activity

Activity

A atividade a ser processada.

logic

(context: TurnContext) => Promise<any>

A função a ser chamada no final do pipeline de middleware.

Retornos

Promise<void>

Comentários

Essa é a principal maneira de um bot receber mensagens de entrada e definir uma reviravolta na conversa. Este método:

  1. Cria um objeto TurnContext para a atividade recebida.
    • Esse objeto é encapsulado com um proxy revogado.
    • Quando esse método for concluído, o proxy será revogado.
  2. Envia o contexto de turno por meio do pipeline de middleware do adaptador.
  3. Envia o contexto de turno para a função logic.
    • O bot pode executar roteamento ou processamento adicionais no momento. Retornar uma promessa (ou fornecer um manipulador de async) fará com que o adaptador aguarde a conclusão de qualquer operação assíncrona.
    • Depois que a função logic for concluída, a cadeia de promessas configurada pelo middleware será resolvida.

O middleware pode curto-circuito uma curva. Quando isso acontece, o middleware subsequente e a função logic não são chamados; no entanto, todo o middleware antes desse ponto ainda é executado até a conclusão. Para obter mais informações sobre o pipeline de middleware, consulte o como os bots funcionam e artigos de de middleware. Use o do adaptador para usar método para adicionar middleware ao adaptador.

processRequest(IReceiveRequest)

Verifica a validade da solicitação e tenta mapeá-la para o ponto de extremidade virtual correto, em seguida, gera e retorna uma resposta, se apropriado.

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

Parâmetros

request

IReceiveRequest

Um ReceiveRequest do canal conectado.

Retornos

Promise<StreamingResponse>

Uma resposta criada pelo BotAdapter a ser enviada ao cliente que originou a solicitação.

sendActivities(TurnContext, Partial<Activity>[])

Envia de forma assíncrona um conjunto de atividades de saída para um servidor de canal. Esse método dá suporte à estrutura e não se destina a ser chamado diretamente para seu código. Use o método sendActivity ou sendActivities do contexto de turno do código do bot.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

activities

Partial<Activity>[]

As atividades a serem enviadas.

Retornos

Promise<ResourceResponse[]>

Uma matriz de ResourceResponse

Comentários

As atividades serão enviadas uma após a outra na ordem em que são recebidas. Um objeto de resposta será retornado para cada atividade enviada. Para message atividades, isso conterá a ID da mensagem entregue.

signOutUser(TurnContext, string, string)

Assina de forma assíncrona o usuário do servidor de token.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

connectionName

string

O nome da conexão de autenticação a ser usada.

userId

string

A ID do usuário para sair.

Retornos

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

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

Parâmetros

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

Retornos

Promise<void>

updateActivity(TurnContext, Partial<Activity>)

Substitui de forma assíncrona uma atividade anterior por uma versão atualizada. Essa interface dá suporte à estrutura e não se destina a ser chamada diretamente para seu código. Use TurnContext.updateActivity para atualizar uma atividade do código do bot.

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

Parâmetros

context

TurnContext

O objeto de contexto para a curva.

activity

Partial<Activity>

A versão atualizada da atividade a ser substituída.

Retornos

Promise<ResourceResponse | void>

Um Promise que representa o ResourceResponse para a operação.

Comentários

Nem todos os canais dão suporte a essa operação. Para canais que não o fazem, essa chamada pode gerar uma exceção.

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

Conecta o manipulador a um servidor pipe nomeado e começa a escutar solicitações de entrada.

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

Parâmetros

logic

(context: TurnContext) => Promise<any>

A lógica que lidará com solicitações de entrada.

pipeName

string

O nome do pipe nomeado a ser usado ao criar o servidor.

retryCount

number

Número de vezes para tentar associar o pipe de entrada e saída

onListen

() => void

Retorno de chamada opcional que é acionado uma vez quando o servidor está escutando no pipe de entrada e saída

Retornos

Promise<void>

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

Processe a solicitação inicial para estabelecer uma conexão de longa duração por meio de um servidor de streaming.

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

Parâmetros

req
WebRequest

A solicitação de conexão.

socket

INodeSocket

A conexão de soquete bruto entre o bot (servidor) e o canal/chamador (cliente).

head

INodeBuffer

O primeiro pacote do fluxo atualizado.

logic

(context: TurnContext) => Promise<any>

A lógica que lida com solicitações de streaming de entrada para o tempo de vida da conexão WebSocket.

Retornos

Promise<void>

Detalhes do método herdado

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Parâmetros

claimsIdentity

ClaimsIdentity

Um ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado de BotAdapter.continueConversationAsync

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Parâmetros

claimsIdentity

ClaimsIdentity

Um ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

audience

string

Um valor que significa o destinatário da mensagem proativa.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado de BotAdapter.continueConversationAsync

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo.

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

Parâmetros

botAppId

string

A ID do aplicativo do bot. Esse parâmetro é ignorado em um único locatário dos Adaptadores (Console, Teste etc),mas é fundamental para o BotFrameworkAdapter, que tem reconhecimento multilocatário.

reference

Partial<ConversationReference>

Um ConversationReference parcial para que a conversa continue.

logic

(context: TurnContext) => Promise<void>

O método assíncrono a ser chamado após a execução do middleware do adaptador.

Retornos

Promise<void>

uma promessa que representa a operação assíncrona

Herdado de BotAdapter.continueConversationAsync

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

Cria uma conversa no canal especificado.

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

Parâmetros

_botAppId

string

A ID do aplicativo do bot.

_channelId

string

A ID do canal.

_serviceUrl

string

A ID do canal.

_audience

string

O público-alvo do conector.

_conversationParameters

ConversationParameters

As informações de conversa a serem usadas para criar a conversa

_logic

(context: TurnContext) => Promise<void>

O método a ser chamado para a curva de bot resultante.

Retornos

Promise<void>

Uma promessa que representa a operação assíncrona

Comentários

Para iniciar uma conversa, o bot deve saber suas informações de conta e as informações da conta do usuário nesse canal. A maioria dos _channels dá suporte apenas ao início de uma conversa direta (não em grupo).

O adaptador tenta criar uma nova conversa no canal e envia uma atividade conversationUpdate por meio de seu pipeline de middleware para o método lógico.

Se a conversa for estabelecida com os usuários especificados, a ID da conversão da atividade conterá a ID da nova conversa.

Herdado de BotAdapter.createConversationAsync

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

Adiciona middleware ao pipeline do adaptador.

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

Parâmetros

middlewares

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

Os manipuladores de middleware ou middleware a serem adicionados.

Retornos

this

O objeto do adaptador atualizado.

Comentários

O middleware é adicionado ao adaptador no momento da inicialização. A cada turno, o adaptador chama seu middleware na ordem em que você o adicionou.

Herdado de BotAdapter.use