Compartir a través de


BotAdapter class

Define el comportamiento principal de un adaptador de bot que puede conectar un bot a un punto de conexión de servicio.

Comentarios

El adaptador de bot encapsula los procesos de autenticación, envía actividades a Bot Connector Service y recibe actividades de este. Cuando el bot recibe una actividad, el adaptador crea un objeto de contexto de turno, lo pasa a la lógica de la aplicación del bot y devuelve respuestas al canal del usuario.

El adaptador procesa y dirige las actividades entrantes en a través de la canalización de middleware del bot a la lógica del bot y, a continuación, vuelve a salir de nuevo. Cuando las actividades entran y salen de los bots, cada fragmento de software intermedio puede inspeccionar o actuar sobre la actividad, tanto antes como después de que se ejecute la lógica del bot. Use el método use para agregar objetos middleware a la colección de middleware del adaptador.

Para más información, consulte los artículos sobre cómo funcionan los bots y middleware.

Propiedades

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Obtiene o establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación. Establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación.

Métodos

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Crea una conversación en el canal especificado.

deleteActivity(TurnContext, Partial<ConversationReference>)

Elimina de forma asincrónica una actividad existente. Esta interfaz admite el marco y no está pensado para llamarse directamente para el código. Use TurnContext.deleteActivity para eliminar una actividad del código del bot.

sendActivities(TurnContext, Partial<Activity>[])

Envía de forma asincrónica un conjunto de actividades salientes a un servidor de canal. Este método admite el marco y no está pensado para llamarse directamente para el código. Use el método sendActivity o sendActivities del contexto de turno desde el código del bot.

updateActivity(TurnContext, Partial<Activity>)

Reemplaza de forma asincrónica una actividad anterior por una versión actualizada. Esta interfaz admite el marco y no está pensado para llamarse directamente para el código. Use TurnContext.updateActivity para actualizar una actividad desde el código del bot.

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

Agrega middleware a la canalización del adaptador.

Detalles de las propiedades

BotIdentityKey

BotIdentityKey: symbol

Valor de propiedad

symbol

ConnectorClientKey

ConnectorClientKey: symbol

Valor de propiedad

symbol

OAuthScopeKey

OAuthScopeKey: symbol

Valor de propiedad

symbol

onTurnError

Obtiene o establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación. Establece un controlador de errores que puede detectar excepciones en el middleware o la aplicación.

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

Valor de propiedad

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

Promesa que representa la operación asincrónica.

Comentarios

Se llama al controlador de errores con estos parámetros:

Nombre Tipo Descripción
context TurnContext Objeto de contexto del turno.
error Error Error de Node.js producido.

Detalles del método

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

reference

Partial<ConversationReference>

Referencia a la conversación que se va a continuar.

logic

(revocableContext: TurnContext) => Promise<void>

Método asincrónico al que se va a llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

Comentarios

Esto se conoce a menudo como una notificación proactiva, el bot puede enviar proactivamente un mensaje a una conversación o usuario sin esperar un mensaje entrante. Por ejemplo, un bot puede usar este método para enviar notificaciones o cupones a un usuario.

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

claimsIdentity

ClaimsIdentity

ClaimsIdentity para la conversación.

reference

Partial<ConversationReference>

ConversationReference parcial a la conversación que se va a continuar.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que se va a llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

claimsIdentity

ClaimsIdentity

ClaimsIdentity para la conversación.

reference

Partial<ConversationReference>

ConversationReference parcial a la conversación que se va a continuar.

audience

string

Valor que indica al destinatario del mensaje proactivo.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que se va a llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

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

Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo.

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

Parámetros

botAppId

string

Identificador de aplicación del bot. Este parámetro se omite en un solo inquilino los adaptadores (consola, prueba, etc.), pero es fundamental para BotFrameworkAdapter, que es compatible con varios inquilinos.

reference

Partial<ConversationReference>

ConversationReference parcial a la conversación que se va a continuar.

logic

(context: TurnContext) => Promise<void>

Método asincrónico al que se va a llamar después de que se ejecute el middleware del adaptador.

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica

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

Crea una conversación en el 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

Identificador de aplicación del bot.

_channelId

string

Identificador del canal.

_serviceUrl

string

Identificador del canal.

_audience

string

Audiencia del conector.

_conversationParameters

ConversationParameters

La información de conversación que se va a usar para crear la conversación

_logic

(context: TurnContext) => Promise<void>

Método al que se va a llamar para el turno de bot resultante.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica.

Comentarios

Para iniciar una conversación, el bot debe conocer su información de cuenta y la información de la cuenta del usuario en ese canal. La mayoría de los _channels solo admiten iniciar una conversación de mensaje directo (no grupal).

El adaptador intenta crear una nueva conversación en el canal y, a continuación, envía una conversationUpdate actividad a través de su canalización de middleware al método lógico.

Si la conversación se establece con los usuarios especificados, el identificador de la conversación de la actividad contendrá el identificador de la nueva conversación.

deleteActivity(TurnContext, Partial<ConversationReference>)

Elimina de forma asincrónica una actividad existente. Esta interfaz admite el marco y no está pensado para llamarse directamente para el código. Use TurnContext.deleteActivity para eliminar una actividad del código del bot.

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

Parámetros

context
TurnContext

Objeto de contexto del turno.

reference

Partial<ConversationReference>

Información de referencia de conversación para la actividad que se va a eliminar.

Devoluciones

Promise<void>

Comentarios

No todos los canales admiten esta operación. Para los canales que no lo hacen, esta llamada puede producir una excepción.

sendActivities(TurnContext, Partial<Activity>[])

Envía de forma asincrónica un conjunto de actividades salientes a un servidor de canal. Este método admite el marco y no está pensado para llamarse directamente para el código. Use el método sendActivity o sendActivities del contexto de turno desde el código del bot.

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

Parámetros

context
TurnContext

Objeto de contexto del turno.

activities

Partial<Activity>[]

Las actividades que se van a enviar.

Devoluciones

Promise<ResourceResponse[]>

Matriz de ResourceResponse

Comentarios

Las actividades se enviarán una después de otra en el orden en que se reciben. Se devolverá un objeto de respuesta para cada actividad enviada. En message el caso de las actividades, contendrá el identificador del mensaje entregado.

updateActivity(TurnContext, Partial<Activity>)

Reemplaza de forma asincrónica una actividad anterior por una versión actualizada. Esta interfaz admite el marco y no está pensado para llamarse directamente para el código. Use TurnContext.updateActivity para actualizar una actividad desde el código del bot.

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

Parámetros

context
TurnContext

Objeto de contexto del turno.

activity

Partial<Activity>

Versión actualizada de la actividad que se va a reemplazar.

Devoluciones

Promise<ResourceResponse | void>

Comentarios

No todos los canales admiten esta operación. Para los canales que no lo hacen, esta llamada puede producir una excepción.

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

Agrega middleware a la canalización del adaptador.

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

Parámetros

middlewares

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

Middleware o controladores de middleware que se van a agregar.

Devoluciones

this

Objeto de adaptador actualizado.

Comentarios

El middleware se agrega al adaptador en el momento de la inicialización. Cada turno, el adaptador llama a su middleware en el orden en que lo agregó.