BotAdapter class

Definisce il comportamento principale di un adattatore bot in grado di connettere un bot a un endpoint di servizio.

Commenti

Il bot adapter incapsula i processi di autenticazione e invia e riceve attività dal servizio Bot Connector. Quando il bot riceve un'attività, l'adapter crea un oggetto contesto di turno, lo passa alla logica dell'applicazione bot e invia le risposte al canale dell'utente.

L'adattatore elabora e indirizza le attività in ingresso tramite la pipeline del middleware del bot alla logica del bot e quindi esegue di nuovo il backout. Quando ogni attività entra ed esce dal bot, ogni componente del middleware può ispezionare o agire in risposta all'attività, prima e dopo l'esecuzione della logica del bot. Utilizzare il metodo use per aggiungere oggetti Middleware alla raccolta middleware dell'adattatore.

Per altre informazioni, vedere gli articoli sul funzionamento dei bot e sul middleware.

Proprietà

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Ottiene o imposta un gestore errori che può intercettare le eccezioni nel middleware o nell'applicazione. Imposta un gestore errori in grado di intercettare le eccezioni nel middleware o nell'applicazione.

Metodi

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Crea una conversazione nel canale specificato.

deleteActivity(TurnContext, Partial<ConversationReference>)

Elimina in modo asincrono un'attività esistente. Questa interfaccia supporta il framework e non deve essere chiamata direttamente per il codice. Usare TurnContext.deleteActivity per eliminare un'attività dal codice del bot.

sendActivities(TurnContext, Partial<Activity>[])

Invia in modo asincrono un set di attività in uscita a un server di canale. Questo metodo supporta il framework e non deve essere chiamato direttamente per il codice. Usare il metodo sendActivity o sendActivities del contesto del turno dal codice del bot.

updateActivity(TurnContext, Partial<Activity>)

Sostituisce in modo asincrono un'attività precedente con una versione aggiornata. Questa interfaccia supporta il framework e non deve essere chiamata direttamente per il codice. Usare TurnContext.updateActivity per aggiornare un'attività dal codice del bot.

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

Aggiunge il middleware alla pipeline dell'adattatore.

Dettagli proprietà

BotIdentityKey

BotIdentityKey: symbol

Valore della proprietà

symbol

ConnectorClientKey

ConnectorClientKey: symbol

Valore della proprietà

symbol

OAuthScopeKey

OAuthScopeKey: symbol

Valore della proprietà

symbol

onTurnError

Ottiene o imposta un gestore errori che può intercettare le eccezioni nel middleware o nell'applicazione. Imposta un gestore errori in grado di intercettare le eccezioni nel middleware o nell'applicazione.

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

Valore della proprietà

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

Promessa che rappresenta l'operazione asincrona.

Commenti

Il gestore degli errori viene chiamato con questi parametri:

Nome Tipo Descrizione
context TurnContext Oggetto di contesto per il turno.
error Error Errore Node.js generato.

Dettagli metodo

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Parametri

reference

Partial<ConversationReference>

Riferimento alla conversazione da continuare.

logic

(revocableContext: TurnContext) => Promise<void>

Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.

Restituisce

Promise<void>

Commenti

Questa operazione viene spesso definita notifica proattiva, il bot può inviare in modo proattivo un messaggio a una conversazione o a un utente senza attendere un messaggio in arrivo. Ad esempio, un bot può usare questo metodo per inviare notifiche o coupon a un utente.

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Parametri

claimsIdentity

ClaimsIdentity

ClaimsIdentity per la conversazione.

reference

Partial<ConversationReference>

Conversazione parzialeReference alla conversazione da continuare.

logic

(context: TurnContext) => Promise<void>

Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.

Restituisce

Promise<void>

promessa che rappresenta l'operazione asincrona

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Parametri

claimsIdentity

ClaimsIdentity

ClaimsIdentity per la conversazione.

reference

Partial<ConversationReference>

Conversazione parzialeReference alla conversazione da continuare.

audience

string

Valore che indica il destinatario del messaggio proattivo.

logic

(context: TurnContext) => Promise<void>

Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.

Restituisce

Promise<void>

promessa che rappresenta l'operazione asincrona

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

Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo.

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

Parametri

botAppId

string

ID applicazione del bot. Questo parametro viene ignorato in un singolo tenant, ovvero Adapters (Console, Test e così via), ma è fondamentale per BotFrameworkAdapter, che è compatibile con più tenant.

reference

Partial<ConversationReference>

Conversazione parzialeReference alla conversazione da continuare.

logic

(context: TurnContext) => Promise<void>

Metodo asincrono da chiamare dopo l'esecuzione del middleware dell'adapter.

Restituisce

Promise<void>

promessa che rappresenta l'operazione asincrona

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

Crea una conversazione nel canale specificato.

function createConversationAsync(_botAppId: string, _channelId: string, _serviceUrl: string, _audience: string, _conversationParameters: ConversationParameters, _logic: (context: TurnContext) => Promise<void>): Promise<void>

Parametri

_botAppId

string

ID applicazione del bot.

_channelId

string

ID del canale.

_serviceUrl

string

ID del canale.

_audience

string

Destinatari del connettore.

_conversationParameters

ConversationParameters

Informazioni sulla conversazione da usare per creare la conversazione

_logic

(context: TurnContext) => Promise<void>

Metodo da chiamare per il turno del bot risultante.

Restituisce

Promise<void>

Promessa che rappresenta l'operazione asincrona

Commenti

Per avviare una conversazione, il bot deve conoscere le informazioni sull'account e le informazioni sull'account dell'utente su tale canale. La maggior parte dei _channels supporta solo l'avvio di una conversazione diretta di messaggi (non di gruppo).

L'adapter tenta di creare una nuova conversazione nel canale e quindi invia un'attività conversationUpdate tramite la pipeline middleware al metodo logico.

Se la conversazione viene stabilita con gli utenti specificati, l'ID della conversazione dell'attività conterrà l'ID della nuova conversazione.

deleteActivity(TurnContext, Partial<ConversationReference>)

Elimina in modo asincrono un'attività esistente. Questa interfaccia supporta il framework e non deve essere chiamata direttamente per il codice. Usare TurnContext.deleteActivity per eliminare un'attività dal codice del bot.

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

Parametri

context
TurnContext

Oggetto di contesto per il turno.

reference

Partial<ConversationReference>

Informazioni di riferimento sulla conversazione per l'attività da eliminare.

Restituisce

Promise<void>

Commenti

Non tutti i canali supportano questa operazione. Per i canali che non lo fanno, questa chiamata può generare un'eccezione.

sendActivities(TurnContext, Partial<Activity>[])

Invia in modo asincrono un set di attività in uscita a un server di canale. Questo metodo supporta il framework e non deve essere chiamato direttamente per il codice. Usare il metodo sendActivity o sendActivities del contesto del turno dal codice del bot.

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

Parametri

context
TurnContext

Oggetto di contesto per il turno.

activities

Partial<Activity>[]

Attività da inviare.

Restituisce

Promise<ResourceResponse[]>

Matrice di ResourceResponse

Commenti

Le attività verranno inviate una dopo l'altra nell'ordine in cui vengono ricevute. Verrà restituito un oggetto risposta per ogni attività inviata. Per message le attività conterrà l'ID del messaggio recapitato.

updateActivity(TurnContext, Partial<Activity>)

Sostituisce in modo asincrono un'attività precedente con una versione aggiornata. Questa interfaccia supporta il framework e non deve essere chiamata direttamente per il codice. Usare TurnContext.updateActivity per aggiornare un'attività dal codice del bot.

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

Parametri

context
TurnContext

Oggetto di contesto per il turno.

activity

Partial<Activity>

Versione aggiornata dell'attività da sostituire.

Restituisce

Promise<ResourceResponse | void>

Commenti

Non tutti i canali supportano questa operazione. Per i canali che non lo fanno, questa chiamata può generare un'eccezione.

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

Aggiunge il middleware alla pipeline dell'adattatore.

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

Parametri

middlewares

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

Gestori middleware o middleware da aggiungere.

Restituisce

this

Oggetto adapter aggiornato.

Commenti

Il middleware viene aggiunto all'adattatore in fase di inizializzazione. Ogni turno, l'adattatore chiama il middleware nell'ordine in cui è stato aggiunto.