Compartir a través de


BotFrameworkAdapter class

Advertencia

Esta API ya está en desuso.

Use CloudAdapter instead.

Extends

BotAdapter

Constructores

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Crea una nueva instancia de la clase BotFrameworkAdapter .

Propiedades

isStreamingConnectionOpen

Se usa en contextos de streaming para comprobar si la conexión de streaming sigue abierta para que el bot envíe actividades.

TokenApiClientCredentialsKey

Propiedades heredadas

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Métodos

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

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

continueConversation(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.

createConnectorClient(string)

Crea un cliente de conector.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Cree un connectorClient con claimsIdentity.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Cree un ConnectorClient con ClaimsIdentity y una audiencia explícita.

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

Crea e inicia de forma asincrónica una conversación con un usuario en un canal.

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

Crea e inicia de forma asincrónica una conversación con un usuario en un canal.

deleteActivity(TurnContext, Partial<ConversationReference>)

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

deleteConversationMember(TurnContext, string)

Quita de forma asincrónica un miembro de la conversación actual.

emulateOAuthCards(TurnContext | string, boolean)

Envía de forma asincrónica una tarjeta OAuth emulada para un canal. Este método admite el marco y no está pensado para llamarse directamente para el código.

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

Realiza de forma asincrónica una operación de intercambio de tokens, como para el inicio de sesión único.

getAadTokens(TurnContext, string, string[])

Cierra la sesión de forma asincrónica del usuario del servidor de tokens.

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

Enumera de forma asincrónica los miembros de una actividad determinada.

getConversationMembers(TurnContext)

Enumera de forma asincrónica los miembros de la conversación actual.

getConversations(TurnContext | string, string)

Para el canal especificado, obtiene de forma asincrónica una página de las conversaciones en las que ha participado este bot.

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

Obtiene de forma asincrónica un vínculo de inicio de sesión desde el servidor de tokens que se puede enviar como parte de un SigninCard.

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

Obtiene de forma asincrónica el recurso de inicio de sesión sin procesar que se enviará al usuario para el inicio de sesión.

getTokenStatus(TurnContext, string, string)

Recupera de forma asincrónica el estado del token para cada conexión configurada para el usuario especificado.

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

Intenta recuperar de forma asincrónica el token de un usuario que se encuentra en un flujo de inicio de sesión.

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

Controle una conexión de socket web aplicando una función lógica a cada solicitud de streaming.

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

Procese una solicitud web aplicando una función lógica.

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

Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante.

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

Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante.

processRequest(IReceiveRequest)

Comprueba la validez de la solicitud e intenta asignarlo al punto de conexión virtual correcto y, a continuación, genera y devuelve una respuesta si procede.

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 turn desde el código del bot.

signOutUser(TurnContext, string, string)

Cierra la sesión de forma asincrónica del usuario del servidor de tokens.

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

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

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

Conecta el controlador a un servidor de canalización con nombre y comienza a escuchar las solicitudes entrantes.

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

Procese la solicitud inicial para establecer una conexión de larga duración a través de un servidor de streaming.

Métodos heredados

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.

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

Agrega middleware a la canalización del adaptador.

Detalles del constructor

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Crea una nueva instancia de la clase BotFrameworkAdapter .

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

Parámetros

settings

Partial<BotFrameworkAdapterSettings>

Opcional. La configuración que se va a usar para esta instancia del adaptador.

Comentarios

Si el settings parámetro no incluye valores channelService o openIdMetadata , el constructor comprueba las variables de entorno del proceso para estos valores. Estos valores se pueden establecer cuando se aprovisiona un bot en Azure y, si es necesario, para que el bot funcione correctamente en la nube global o en una nube nacional.

La clase BotFrameworkAdapterSettings define la configuración del adaptador disponible.

Detalles de las propiedades

isStreamingConnectionOpen

Se usa en contextos de streaming para comprobar si la conexión de streaming sigue abierta para que el bot envíe actividades.

boolean isStreamingConnectionOpen

Valor de propiedad

boolean

True si la conexión de streaming está abierta; de lo contrario, false.

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

Valor de propiedad

symbol

Detalles de las propiedades heredadas

BotIdentityKey

BotIdentityKey: symbol

Valor de propiedad

symbol

Heredado de BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valor de propiedad

symbol

Heredado de BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valor de propiedad

symbol

Heredado de BotAdapter.OAuthScopeKey

onTurnError

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

Valor de propiedad

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

Heredado de BotAdapter.onTurnError

Detalles del método

continueConversation(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 continueConversation(reference: Partial<ConversationReference>, logic: (context: TurnContext) => Promise<void>): Promise<void>

Parámetros

reference

Partial<ConversationReference>

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

Comentarios

Esto se conoce a menudo como una notificación proactiva, el bot puede enviar de forma proactiva 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.

Para enviar un mensaje proactivo:

  1. Guarde una copia de conversationReference de una actividad entrante. Por ejemplo, puede almacenar la referencia de conversación en una base de datos.
  2. Llame a este método para reanudar la conversación más adelante. Use la referencia guardada para acceder a la conversación.
  3. Si se ejecuta correctamente, el adaptador genera un objeto TurnContext y llama al controlador de funciones logic . Use la logic función para enviar el mensaje proactivo.

Para copiar la referencia de cualquier actividad entrante de la conversación, use el método TurnContext.getConversationReference .

Este método es similar al método processActivity . El adaptador crea un TurnContext y lo enruta a través de su middleware antes de llamar al logic controlador. La actividad creada tendrá un tipo de "event" y un nombre de "continueConversation".

Por ejemplo:

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

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

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

Parámetros

reference

Partial<ConversationReference>

(xref:botframework-schema. ConversationReference) de la conversación que se va a continuar.

oAuthScope

string

Destinatario previsto de las actividades enviadas o de la función a la que se va a llamar para continuar la conversación.

logic

(context: TurnContext) => Promise<void>

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

Devoluciones

Promise<void>

createConnectorClient(string)

Crea un cliente de conector.

function createConnectorClient(serviceUrl: string): ConnectorClient

Parámetros

serviceUrl

string

Dirección URL del servicio del cliente.

Devoluciones

ConnectorClient

Instancia de ConnectorClient .

Comentarios

Invalide esto en una clase derivada para crear un cliente de conector ficticio para pruebas unitarias.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Cree un connectorClient con claimsIdentity.

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

Parámetros

serviceUrl

string

Dirección URL del servicio del cliente.

identity

ClaimsIdentity

ClaimsIdentity

Devoluciones

Promise<ConnectorClient>

Comentarios

Si ClaimsIdentity contiene las notificaciones de una solicitud Skills, cree un ConnectorClient para usarlo con Skills. Deriva la audiencia correcta de claimsIdentity o de la propiedad credentials de la instancia.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Cree un ConnectorClient con ClaimsIdentity y una audiencia explícita.

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

Parámetros

serviceUrl

string

Dirección URL del servicio del cliente.

identity

ClaimsIdentity

ClaimsIdentity

audience

string

Destinatario de los mensajes de ConnectorClient. Normalmente, Bot Framework Channel Service o appId de otro bot.

Devoluciones

Promise<ConnectorClient>

Comentarios

Si el público recortado no es una cadena de longitud distinta de cero, la audiencia se derivará de la propiedad ClaimsIdentity o de las credenciales de la instancia.

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

Crea e inicia de forma asincrónica una conversación con un usuario en un canal.

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

Parámetros

reference

Partial<ConversationReference>

Referencia de la conversación que se va a crear.

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

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

Crea e inicia de forma asincrónica una conversación con un usuario en un canal.

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

Parámetros

reference

Partial<ConversationReference>

Referencia de la conversación que se va a crear.

parameters

Partial<ConversationParameters>

Parámetros usados al crear la conversación

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

deleteActivity(TurnContext, Partial<ConversationReference>)

Elimina de forma asincrónica una actividad existente. Esta interfaz admite el marco de trabajo 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. En el caso de los canales que no lo hacen, esta llamada puede producir una excepción.

deleteConversationMember(TurnContext, string)

Quita de forma asincrónica un miembro de la conversación actual.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

memberId

string

Identificador del miembro que se va a quitar de la conversación.

Devoluciones

Promise<void>

Comentarios

Quite la información de identidad de un miembro de la conversación.

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

emulateOAuthCards(TurnContext | string, boolean)

Envía de forma asincrónica una tarjeta OAuth emulada para un canal. Este método admite el marco y no está pensado para llamarse directamente para el código.

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

Parámetros

contextOrServiceUrl

TurnContext | string

Dirección URL del emulador.

emulate

boolean

true para enviar una tarjeta OAuth emulada al emulador; o false para no enviar la tarjeta.

Devoluciones

Promise<void>

Comentarios

Al probar un bot en el Bot Framework Emulator, este método puede emular la interacción de la tarjeta OAuth.

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

Realiza de forma asincrónica una operación de intercambio de tokens, como para el inicio de sesión único.

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

Parámetros

context

TurnContext

Contexto para el turno actual de conversación con el usuario.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Identificador de usuario que se asociará al token.

tokenExchangeRequest

TokenExchangeRequest

Los detalles de la solicitud de intercambio, ya sea un token para intercambiar o un URI que se va a intercambiar.

appCredentials

CoreAppCredentials

Opcional. CoreAppCredentials para OAuth.

Devoluciones

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

Cierra la sesión de forma asincrónica del usuario del servidor de tokens.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

resourceUrls

string[]

Lista de direcciones URL de recursos para las que se van a recuperar tokens.

Devoluciones

Promise<[key: string]: TokenResponse>

Mapa de los objetos TokenResponse por dirección URL del 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

Devoluciones

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

Enumera de forma asincrónica los miembros de una actividad determinada.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

activityId

string

Opcional. Identificador de la actividad de la que se van a obtener los miembros. Si no se especifica, se usa el identificador de actividad actual.

Devoluciones

Promise<ChannelAccount[]>

Matriz de objetos ChannelAccount para los usuarios implicados en una actividad determinada.

Comentarios

Devuelve una matriz de objetos ChannelAccount para los usuarios implicados en una actividad determinada.

Esto es diferente de getConversationMembers en que devolverá solo los usuarios implicados directamente en la actividad, no todos los miembros de la conversación.

getConversationMembers(TurnContext)

Enumera de forma asincrónica los miembros de la conversación actual.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

Devoluciones

Promise<ChannelAccount[]>

Matriz de objetos ChannelAccount para todos los usuarios implicados actualmente en una conversación.

Comentarios

Devuelve una matriz de objetos ChannelAccount para todos los usuarios implicados actualmente en una conversación.

Esto es diferente de getActivityMembers en que devolverá todos los miembros de la conversación, no solo los implicados directamente en una actividad específica.

getConversations(TurnContext | string, string)

Para el canal especificado, obtiene de forma asincrónica una página de las conversaciones en las que ha participado este bot.

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

Parámetros

contextOrServiceUrl

TurnContext | string

Dirección URL del servidor de canal que se va a consultar o un objeto TurnContext desde una conversación en el canal.

continuationToken

string

Opcional. Token de continuación de la página anterior de resultados. Omita este parámetro o use undefined para recuperar la primera página de resultados.

Devoluciones

Promise<ConversationsResult>

Objeto ConversationsResult que contiene una página de resultados y un token de continuación.

Comentarios

La propiedad conversations del valor devuelto contiene una página de objetos ConversationMembers . El identificador de cada objeto es el identificador de una conversación en la que el bot ha participado en este canal. Se puede llamar a este método desde fuera del contexto de una conversación, ya que solo se requieren las credenciales y la dirección URL del servicio del bot.

Los lotes del canal se traducen en páginas. Si la propiedad continuationToken del resultado no está vacía, hay más páginas que obtener. Use el token devuelto para obtener la siguiente página de resultados. Si el contextOrServiceUrl parámetro es TurnContext, la dirección URL del servidor de canal se recupera de contextOrServiceUrl. actividad. serviceUrl.

Obtiene de forma asincrónica un vínculo de inicio de sesión desde el servidor de tokens que se puede enviar como parte de un SigninCard.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

oAuthAppCredentials

AppCredentials

AppCredentials para OAuth.

userId

string

Identificador de usuario que se asociará al token.

finalRedirect

string

Dirección URL final a la que se redirigirá el flujo de OAuth.

Devoluciones

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

Devoluciones

Promise<string>

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

Obtiene de forma asincrónica el recurso de inicio de sesión sin procesar que se enviará al usuario para el inicio de sesión.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Identificador de usuario que se asociará al token.

finalRedirect

string

Dirección URL final a la que se redirigirá el flujo de OAuth.

appCredentials

CoreAppCredentials

Opcional. CoreAppCredentials para OAuth.

Devoluciones

Promise<SignInUrlResponse>

Objeto BotSignInGetSignInResourceResponse .

getTokenStatus(TurnContext, string, string)

Recupera de forma asincrónica el estado del token para cada conexión configurada para el usuario especificado.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

userId

string

Opcional. Si está presente, el identificador del usuario para el que se va a recuperar el estado del token. De lo contrario, se usa el identificador del usuario que envió la actividad actual.

includeFilter

string

Opcional. Lista separada por comas de las conexiones que se van a incluir. Si está presente, el includeFilter parámetro limita los tokens que devuelve este método.

Devoluciones

Promise<TokenStatus[]>

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

Devoluciones

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

Intenta recuperar de forma asincrónica el token de un usuario que se encuentra en un flujo de inicio de sesión.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

magicCode

string

Opcional. Código de validación que especificó el usuario.

Devoluciones

Promise<TokenResponse>

Objeto TokenResponse que contiene el token de usuario.

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

Devoluciones

Promise<TokenResponse>

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

Controle una conexión de socket web aplicando una función lógica a cada solicitud de streaming.

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

Parámetros

req
Request

Una solicitud HTTP entrante

socket

INodeSocket

INodeSocket correspondiente

head

INodeBuffer

INodeBuffer correspondiente

logic

(context: TurnContext) => Promise<void>

Función lógica que se va a aplicar

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica.

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

Procese una solicitud web aplicando una función lógica.

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

Parámetros

req
Request

Una solicitud HTTP entrante

logic

(context: TurnContext) => Promise<void>

Función lógica que se va a aplicar

Devoluciones

Promise<void>

una promesa que representa la operación asincrónica.

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

Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante.

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

Parámetros

req
WebRequest

Objeto de solicitud de estilo Express o Restify.

res
WebResponse

Objeto de respuesta de estilo Express o Restify.

logic

(context: TurnContext) => Promise<any>

Función a la que se va a llamar al final de la canalización de middleware.

Devoluciones

Promise<void>

Comentarios

Esta es la forma principal en que un bot recibe mensajes entrantes y define un turno en la conversación. Este método:

  1. Analiza y autentica una solicitud entrante.
    • La actividad se lee desde el cuerpo de la solicitud entrante. Se devolverá un error si no se puede analizar la actividad.
    • La identidad del remitente se autentica como emulador o como un servidor de Microsoft válido, mediante el bot appId y appPassword. La solicitud se rechaza si no se comprueba la identidad del remitente.
  2. Crea un objeto TurnContext para la actividad recibida.
    • Este objeto se ajusta con un proxy revocable.
    • Cuando se completa este método, se revoca el proxy.
  3. Envía el contexto de turno a través de la canalización de middleware del adaptador.
  4. Envía el contexto de turno a la logic función .
    • El bot puede realizar un enrutamiento o procesamiento adicionales en este momento. Devolver una promesa (o proporcionar un async controlador) hará que el adaptador espere a que se completen las operaciones asincrónicas.
    • Una vez completada la logic función, se resuelve la cadena de promesas configurada por el middleware.

Sugerencia

Si ve el error TypeError: Cannot perform 'set' on a proxy that has been revoked en la salida de la consola del bot, la causa probable es que se usó una función asincrónica sin usar la await palabra clave . Asegúrese de que todas las funciones asincrónicas usen await.

El middleware puede cortocircuitar un giro. Cuando esto sucede, no se llama al middleware subsiguiente y a la logic función; sin embargo, todo el middleware antes de este punto se sigue ejecutando hasta la finalización. Para más información sobre la canalización de middleware, consulte los artículos sobre cómo funcionan los bots y el middleware . Use el método use del adaptador para agregar middleware al adaptador.

Por ejemplo:

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

Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante.

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

Parámetros

activity

Activity

Actividad que se va a procesar.

logic

(context: TurnContext) => Promise<any>

Función a la que se va a llamar al final de la canalización de middleware.

Devoluciones

Promise<void>

Comentarios

Esta es la forma principal en que un bot recibe mensajes entrantes y define un turno en la conversación. Este método:

  1. Crea un objeto TurnContext para la actividad recibida.
    • Este objeto se ajusta con un proxy revocable.
    • Cuando se completa este método, se revoca el proxy.
  2. Envía el contexto de turno a través de la canalización de middleware del adaptador.
  3. Envía el contexto de turno a la logic función .
    • El bot puede realizar un enrutamiento o procesamiento adicionales en este momento. Devolver una promesa (o proporcionar un async controlador) hará que el adaptador espere a que se completen las operaciones asincrónicas.
    • Una vez completada la logic función, se resuelve la cadena de promesas configurada por el middleware.

El middleware puede cortocircuitar un giro. Cuando esto sucede, no se llama al middleware subsiguiente y a la logic función; sin embargo, todo el middleware antes de este punto se sigue ejecutando hasta la finalización. Para más información sobre la canalización de middleware, consulte los artículos sobre cómo funcionan los bots y el middleware . Use el método use del adaptador para agregar middleware al adaptador.

processRequest(IReceiveRequest)

Comprueba la validez de la solicitud e intenta asignarlo al punto de conexión virtual correcto y, a continuación, genera y devuelve una respuesta si procede.

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

Parámetros

request

IReceiveRequest

ReceiveRequest desde el canal conectado.

Devoluciones

Promise<StreamingResponse>

Respuesta creada por BotAdapter que se enviará al cliente que originó la solicitud.

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 turn 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.

signOutUser(TurnContext, string, string)

Cierra la sesión de forma asincrónica del usuario del servidor de tokens.

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

Parámetros

context

TurnContext

Objeto de contexto del turno.

connectionName

string

Nombre de la conexión de autenticación que se va a usar.

userId

string

Identificador del usuario que se va a cerrar la sesión.

Devoluciones

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

Devoluciones

Promise<void>

updateActivity(TurnContext, Partial<Activity>)

Reemplaza de forma asincrónica una actividad anterior por una versión actualizada. Esta interfaz admite el marco de trabajo 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>

que Promise representa ResourceResponse para la operación.

Comentarios

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

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

Conecta el controlador a un servidor de canalización con nombre y comienza a escuchar las solicitudes entrantes.

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

Parámetros

logic

(context: TurnContext) => Promise<any>

Lógica que controlará las solicitudes entrantes.

pipeName

string

Nombre de la canalización con nombre que se va a usar al crear el servidor.

retryCount

number

Número de veces que se intenta enlazar la canalización entrante y saliente

onListen

() => void

Devolución de llamada opcional que se activa una vez cuando el servidor escucha en canalización entrante y saliente

Devoluciones

Promise<void>

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

Procese la solicitud inicial para establecer una conexión de larga duración a través de un servidor de streaming.

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

Parámetros

req
WebRequest

Solicitud de conexión.

socket

INodeSocket

Conexión de socket sin procesar entre el bot (servidor) y el canal o llamador (cliente).

head

INodeBuffer

Primer paquete de la secuencia actualizada.

logic

(context: TurnContext) => Promise<any>

Lógica que controla las solicitudes de streaming entrantes durante la vigencia de la conexión WebSocket.

Devoluciones

Promise<void>

Detalles de los métodos heredados

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>

Conversación parcialReferencia 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

Heredado de BotAdapter.continueConversationAsync

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>

Conversación parcialReferencia 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

Heredado de BotAdapter.continueConversationAsync

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>

Conversación parcialReferencia 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

Heredado de BotAdapter.continueConversationAsync

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

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 del bot resultante.

Devoluciones

Promise<void>

Promesa que representa la operación asincrónica

Comentarios

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

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.

Heredado de BotAdapter.createConversationAsync

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ó.

Heredado de BotAdapter.use