BotFrameworkAdapter class
Advertencia
Esta API ya está en desuso.
Use CloudAdapter
instead.
- Extends
-
BotAdapter
Constructores
Bot |
Crea una nueva instancia de la clase BotFrameworkAdapter . |
Propiedades
is |
Se usa en contextos de streaming para comprobar si la conexión de streaming sigue abierta para que el bot envíe actividades. |
Token |
Propiedades heredadas
Bot |
|
Connector |
|
OAuth |
|
on |
Métodos
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
create |
Crea un cliente de conector. |
create |
Cree un connectorClient con claimsIdentity. |
create |
Cree un ConnectorClient con ClaimsIdentity y una audiencia explícita. |
create |
Crea e inicia de forma asincrónica una conversación con un usuario en un canal. |
create |
Crea e inicia de forma asincrónica una conversación con un usuario en un canal. |
delete |
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. |
delete |
Quita de forma asincrónica un miembro de la conversación actual. |
emulate |
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. |
exchange |
Realiza de forma asincrónica una operación de intercambio de tokens, como para el inicio de sesión único. |
get |
Cierra la sesión de forma asincrónica del usuario del servidor de tokens. |
get |
|
get |
Enumera de forma asincrónica los miembros de una actividad determinada. |
get |
Enumera de forma asincrónica los miembros de la conversación actual. |
get |
Para el canal especificado, obtiene de forma asincrónica una página de las conversaciones en las que ha participado este bot. |
get |
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. |
get |
|
get |
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. |
get |
Recupera de forma asincrónica el estado del token para cada conexión configurada para el usuario especificado. |
get |
|
get |
Intenta recuperar de forma asincrónica el token de un usuario que se encuentra en un flujo de inicio de sesión. |
get |
|
process(Request, INode |
Controle una conexión de socket web aplicando una función lógica a cada solicitud de streaming. |
process(Request, Response, (context: Turn |
Procese una solicitud web aplicando una función lógica. |
process |
Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante. |
process |
Crea de forma asincrónica un contexto de turno y ejecuta la canalización de middleware para una actividad entrante. |
process |
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. |
send |
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. |
sign |
Cierra la sesión de forma asincrónica del usuario del servidor de tokens. |
sign |
|
update |
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. |
use |
Conecta el controlador a un servidor de canalización con nombre y comienza a escuchar las solicitudes entrantes. |
use |
Procese la solicitud inicial para establecer una conexión de larga duración a través de un servidor de streaming. |
Métodos heredados
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
continue |
Reanuda de forma asincrónica una conversación con un usuario, posiblemente después de algún tiempo. |
create |
Crea una conversación en el canal especificado. |
use((context: Turn |
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:
- Guarde una copia de conversationReference de una actividad entrante. Por ejemplo, puede almacenar la referencia de conversación en una base de datos.
- Llame a este método para reanudar la conversación más adelante. Use la referencia guardada para acceder a la conversación.
- Si se ejecuta correctamente, el adaptador genera un objeto TurnContext y llama al controlador de funciones
logic
. Use lalogic
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.
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.
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>
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
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
- 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
- res
- Response
Respuesta HTTP 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.
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:
- 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
yappPassword
. La solicitud se rechaza si no se comprueba la identidad del remitente.
- 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.
- Envía el contexto de turno a través de la canalización de middleware del adaptador.
- 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 bot puede realizar un enrutamiento o procesamiento adicionales en este momento.
Devolver una promesa (o proporcionar un
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:
- 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.
- Envía el contexto de turno a través de la canalización de middleware del adaptador.
- 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 bot puede realizar un enrutamiento o procesamiento adicionales en este momento.
Devolver una promesa (o proporcionar un
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