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 após algum tempo.

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

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

createConnectorClient(string)

Cria um cliente do 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 de forma assíncrona uma conversa com um usuário em um canal.

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

Cria e inicia de forma assíncrona uma conversa 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[])

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

Obter 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 determinado.

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

Desconscroniza 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 após algum tempo.

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

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

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

Retoma de forma assíncrona uma conversa com um usuário, possivelmente após 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 settings parâmetro não incluir valores channelService ou 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, nesse caso, 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 após algum tempo.

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

Parâmetros

reference

Partial<ConversationReference>

Uma referência à conversa para 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 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 a 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. Em caso de êxito, o adaptador gera um objeto TurnContext e chama o manipulador de logic funções. Use a logic função 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 logic manipulador. A atividade criada terá um tipo de 'event' 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 após 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 do conector.

function createConnectorClient(serviceUrl: string): ConnectorClient

Parâmetros

serviceUrl

string

A URL de serviço do cliente.

Retornos

ConnectorClient

A instância do 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 ClaimsIdentity contiver as declarações de uma solicitação skills, crie um ConnectorClient para uso com 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-alvo será derivado da propriedade ClaimsIdentity ou das credenciais da instância.

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

Cria e inicia de forma assíncrona uma conversa 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 de forma assíncrona uma conversa 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 removido 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 para 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 de conversa atual com o usuário.

connectionName

string

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

userId

string

A ID de 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[])

Desconscreve 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, não 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 de 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 deste canal. Esse método pode ser chamado de fora do contexto de uma conversa, pois apenas 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 contextOrServiceUrl parâmetro 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 de 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)

Obter 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 de 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 determinado.

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 includeFilter parâmetro limitará os tokens que esse método retorna.

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

A 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 os bots appId e appPassword. 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 revogável.
    • 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 logic função.
    • O bot pode executar roteamento ou processamento adicionais no momento. Retornar uma promessa (ou fornecer um async manipulador) fará com que o adaptador aguarde a conclusão de qualquer operação assíncrona.
    • Depois que a logic função for concluída, a cadeia de promessas configurada pelo middleware será resolvida.

Dica

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 tenha sido usada sem usar a await palavra-chave . Verifique se todas as funções assíncronas usam await!

O middleware pode causar um curto-circuito em uma curva. Quando isso acontece, o middleware subsequente e a logic função 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 os artigos como os bots funcionam e o middleware . Use o método de uso do adaptador 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 revogável.
    • 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 logic função.
    • O bot pode executar roteamento ou processamento adicionais no momento. Retornar uma promessa (ou fornecer um async manipulador) fará com que o adaptador aguarde a conclusão de qualquer operação assíncrona.
    • Depois que a logic função for concluída, a cadeia de promessas configurada pelo middleware será resolvida.

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

processRequest(IReceiveRequest)

Verifica a validade da solicitação e tenta mapeá-la para o ponto de extremidade virtual correto, 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)

Desconscroniza 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 manipulará as 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 manipula 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 após algum tempo.

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

Parâmetros

claimsIdentity

ClaimsIdentity

Uma ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Uma ConversationReference parcial para a conversa 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>

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 após algum tempo.

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

Parâmetros

claimsIdentity

ClaimsIdentity

Uma ClaimsIdentity para a conversa.

reference

Partial<ConversationReference>

Uma ConversationReference parcial para a conversa continuar.

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 após 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>

Uma ConversationReference parcial para a conversa 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>

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 volta do bot resultante.

Retornos

Promise<void>

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

Comentários

Para iniciar uma conversa, seu 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 de mensagem direta (não grupo).

O adaptador tenta criar uma nova conversa no canal e, em seguida, envia uma conversationUpdate atividade 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