BotFrameworkAdapter class
Aviso
Essa API foi preterida.
Use CloudAdapter
instead.
- Extends
-
BotAdapter
Construtores
Bot |
Propriedades
is |
Usado em contextos de streaming para verificar se a conexão de streaming ainda está aberta para o bot enviar atividades. |
Token |
Propriedades herdadas
Bot |
|
Connector |
|
OAuth |
|
on |
Métodos
continue |
Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo. |
continue |
Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo. |
create |
Cria um cliente de conector. |
create |
Crie um ConnectorClient com uma ClaimsIdentity. |
create |
Crie um ConnectorClient com uma ClaimsIdentity e um público explícito. |
create |
Cria e inicia uma conversa de forma assíncrona com um usuário em um canal. |
create |
Cria e inicia uma conversa de forma assíncrona com um usuário em um canal. |
delete |
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. |
delete |
Remove de forma assíncrona um membro da conversa atual. |
emulate |
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. |
exchange |
Executa de forma assíncrona uma operação de troca de token, como para logon único. |
get |
Assina de forma assíncrona o usuário do servidor de token. |
get |
|
get |
Lista de forma assíncrona os membros de uma determinada atividade. |
get |
Lista de forma assíncrona os membros da conversa atual. |
get |
Para o canal especificado, obtém de forma assíncrona uma página das conversas nas quais esse bot participou. |
get |
Obtém de forma assíncrona um link de entrada do servidor de token que pode ser enviado como parte de um SigninCard. |
get |
|
get |
Obtenha de forma assíncrona o recurso de entrada bruto a ser enviado ao usuário para entrar. |
get |
Recupera de forma assíncrona o status do token para cada conexão configurada para o usuário fornecido. |
get |
|
get |
Tenta de forma assíncrona recuperar o token de um usuário que está em um fluxo de logon. |
get |
|
process(Request, INode |
Manipule uma conexão de soquete da Web aplicando uma função lógica a cada solicitação de streaming. |
process(Request, Response, (context: Turn |
Processe uma solicitação da Web aplicando uma função lógica. |
process |
Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada. |
process |
Cria de forma assíncrona um contexto de turno e executa o pipeline de middleware para uma atividade de entrada. |
process |
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. |
send |
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. |
sign |
Assina de forma assíncrona o usuário do servidor de token. |
sign |
|
update |
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. |
use |
Conecta o manipulador a um servidor pipe nomeado e começa a escutar solicitações de entrada. |
use |
Processe a solicitação inicial para estabelecer uma conexão de longa duração por meio de um servidor de streaming. |
Métodos herdados
continue |
Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo. |
continue |
Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo. |
continue |
Retoma de forma assíncrona uma conversa com um usuário, possivelmente depois de algum tempo. |
create |
Cria uma conversa no canal especificado. |
use((context: Turn |
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:
- 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. - Chame esse método para retomar a conversa posteriormente. Use a referência salva para acessar a conversa.
- Com êxito, o adaptador gera um objeto TurnContext e chama o manipulador de funções
logic
. Use a funçãologic
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 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
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.
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.
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>
getSignInLink(TurnContext, string, CoreAppCredentials, string, 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
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
- head
-
INodeBuffer
O INodeBuffer
- 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
- 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:
- 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 oappPassword
do bot. A solicitação será rejeitada se a identidade do remetente não for verificada.
- 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.
- Envia o contexto de turno por meio do pipeline de middleware do adaptador.
- 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 bot pode executar roteamento ou processamento adicionais no momento.
Retornar uma promessa (ou fornecer um manipulador de
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:
- 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.
- Envia o contexto de turno por meio do pipeline de middleware do adaptador.
- 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 bot pode executar roteamento ou processamento adicionais no momento.
Retornar uma promessa (ou fornecer um manipulador de
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
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
- 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
- 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