Condividi tramite


BotFrameworkAdapter class

Avviso

Questa API è ora deprecata.

Use CloudAdapter instead.

Extends

BotAdapter

Costruttori

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Crea una nuova istanza della classe BotFrameworkAdapter .

Proprietà

isStreamingConnectionOpen

Usato nei contesti di streaming per verificare se la connessione di streaming è ancora aperta per il bot per inviare attività.

TokenApiClientCredentialsKey

Proprietà ereditate

BotIdentityKey
ConnectorClientKey
OAuthScopeKey
onTurnError

Metodi

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

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

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

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

createConnectorClient(string)

Crea un client connettore.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Creare un ConnectorClient con claimsIdentity.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Creare un ConnectorClient con claimsIdentity e un gruppo di destinatari esplicito.

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

Crea e avvia in modo asincrono una conversazione con un utente in un canale.

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

Crea e avvia in modo asincrono una conversazione con un utente in un canale.

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.

deleteConversationMember(TurnContext, string)

Rimuove in modo asincrono un membro dalla conversazione corrente.

emulateOAuthCards(TurnContext | string, boolean)

Invia in modo asincrono una scheda OAuth emulata per un canale. Questo metodo supporta il framework e non deve essere chiamato direttamente per il codice.

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

Esegue in modo asincrono un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On.

getAadTokens(TurnContext, string, string[])

Disconnette in modo asincrono l'utente dal server token.

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

Elenca in modo asincrono i membri di un'attività specificata.

getConversationMembers(TurnContext)

Elenca in modo asincrono i membri della conversazione corrente.

getConversations(TurnContext | string, string)

Per il canale specificato, ottiene in modo asincrono una pagina delle conversazioni in cui questo bot ha partecipato.

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

Ottiene in modo asincrono un collegamento di accesso dal server token che può essere inviato come parte di un SigninCard.

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

Ottenere in modo asincrono la risorsa di accesso non elaborata da inviare all'utente per l'accesso.

getTokenStatus(TurnContext, string, string)

Recupera in modo asincrono lo stato del token per ogni connessione configurata per l'utente specificato.

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

Tenta in modo asincrono di recuperare il token per un utente in un flusso di accesso.

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

Gestire una connessione web socket applicando una funzione logica a ogni richiesta di streaming.

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

Elaborare una richiesta Web applicando una funzione logica.

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

Crea in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso.

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

Crea in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso.

processRequest(IReceiveRequest)

Controlla la validità della richiesta e tenta di eseguire il mapping dell'endpoint virtuale corretto, quindi genera e restituisce una risposta se appropriato.

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 del contesto di turno o sendActivities dal codice del bot.

signOutUser(TurnContext, string, string)

Disconnette in modo asincrono l'utente dal server token.

signOutUser(TurnContext, string, string, CoreAppCredentials)
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.

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

Connette il gestore a un server Named Pipe e inizia ad ascoltare le richieste in ingresso.

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

Elaborare la richiesta iniziale per stabilire una connessione a lungo termine tramite un server di streaming.

Metodi ereditati

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.

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

Aggiunge il middleware alla pipeline dell'adattatore.

Dettagli costruttore

BotFrameworkAdapter(Partial<BotFrameworkAdapterSettings>)

Crea una nuova istanza della classe BotFrameworkAdapter .

new BotFrameworkAdapter(settings?: Partial<BotFrameworkAdapterSettings>)

Parametri

settings

Partial<BotFrameworkAdapterSettings>

Facoltativa. Impostazioni da utilizzare per questa istanza dell'adattatore.

Commenti

Se il settings parametro non include valori channelService o openIdMetadata , il costruttore controlla le variabili di ambiente del processo per questi valori. Questi valori possono essere impostati quando viene effettuato il provisioning di un bot in Azure e, se necessario, affinché il bot funzioni correttamente nel cloud globale o in un cloud nazionale.

La classe BotFrameworkAdapterSettings definisce le impostazioni dell'adattatore disponibili.

Dettagli proprietà

isStreamingConnectionOpen

Usato nei contesti di streaming per verificare se la connessione di streaming è ancora aperta per il bot per inviare attività.

boolean isStreamingConnectionOpen

Valore della proprietà

boolean

True se la connessione di streaming è aperta, in caso contrario false.

TokenApiClientCredentialsKey

TokenApiClientCredentialsKey: symbol

Valore della proprietà

symbol

Dettagli proprietà ereditate

BotIdentityKey

BotIdentityKey: symbol

Valore della proprietà

symbol

Ereditato da BotAdapter.BotIdentityKey

ConnectorClientKey

ConnectorClientKey: symbol

Valore della proprietà

symbol

Ereditato da BotAdapter.ConnectorClientKey

OAuthScopeKey

OAuthScopeKey: symbol

Valore della proprietà

symbol

Ereditato da BotAdapter.OAuthScopeKey

onTurnError

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

Valore della proprietà

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

Ereditato da BotAdapter.onTurnError

Dettagli metodo

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

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

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

Parametri

reference

Partial<ConversationReference>

Riferimento alla conversazione da continuare.

logic

(context: 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.

Per inviare un messaggio proattivo:

  1. Salvare una copia di ConversationReference da un'attività in ingresso. Ad esempio, è possibile archiviare il riferimento alla conversazione in un database.
  2. Chiamare questo metodo per riprendere la conversazione in un secondo momento. Usare il riferimento salvato per accedere alla conversazione.
  3. In caso di esito positivo, l'adattatore genera un oggetto TurnContext e chiama il gestore della logic funzione. Usare la logic funzione per inviare il messaggio proattivo.

Per copiare il riferimento da qualsiasi attività in ingresso nella conversazione, utilizzare il metodo TurnContext.getConversationReference .

Questo metodo è simile al metodo processActivity . L'adattatore crea un oggetto TurnContext e lo instrada attraverso il middleware prima di chiamare il logic gestore. L'attività creata avrà un tipo di 'evento' e un nome 'continueConversation'.

Ad esempio:

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

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

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

Parametri

reference

Partial<ConversationReference>

(xref:botframework-schema. ConversationReference) della conversazione da continuare.

oAuthScope

string

Destinatario previsto di qualsiasi attività inviata o della funzione da chiamare per continuare la conversazione.

logic

(context: TurnContext) => Promise<void>

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

Restituisce

Promise<void>

createConnectorClient(string)

Crea un client connettore.

function createConnectorClient(serviceUrl: string): ConnectorClient

Parametri

serviceUrl

string

URL del servizio del client.

Restituisce

ConnectorClient

Istanza ConnectorClient .

Commenti

Eseguire l'override in una classe derivata per creare un client connettore fittizio per unit test.

createConnectorClientWithIdentity(string, ClaimsIdentity)

Creare un ConnectorClient con claimsIdentity.

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

Parametri

serviceUrl

string

URL del servizio del client.

identity

ClaimsIdentity

ClaimsIdentity

Restituisce

Promise<ConnectorClient>

Commenti

Se ClaimsIdentity contiene le attestazioni per una richiesta di competenze, creare un ConnectorClient da usare con skills. Deriva il gruppo di destinatari corretto dalla proprietà ClaimsIdentity o dalle credenziali dell'istanza.

createConnectorClientWithIdentity(string, ClaimsIdentity, string)

Creare un ConnectorClient con claimsIdentity e un gruppo di destinatari esplicito.

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

Parametri

serviceUrl

string

URL del servizio del client.

identity

ClaimsIdentity

ClaimsIdentity

audience

string

Destinatario dei messaggi di ConnectorClient. In genere il servizio canale bot Framework o l'AppId di un altro bot.

Restituisce

Promise<ConnectorClient>

Commenti

Se il gruppo di destinatari tagliato non è una stringa di lunghezza diversa da zero, il gruppo di destinatari verrà derivato dalla proprietà ClaimsIdentity o dalla proprietà credentials dell'istanza.

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

Crea e avvia in modo asincrono una conversazione con un utente in un canale.

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

Parametri

reference

Partial<ConversationReference>

Riferimento per la conversazione da creare.

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

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

Crea e avvia in modo asincrono una conversazione con un utente in un canale.

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

Parametri

reference

Partial<ConversationReference>

Riferimento per la conversazione da creare.

parameters

Partial<ConversationParameters>

Parametri usati durante la creazione della conversazione

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

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.

deleteConversationMember(TurnContext, string)

Rimuove in modo asincrono un membro dalla conversazione corrente.

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

Parametri

context

TurnContext

Oggetto di contesto per il turno.

memberId

string

ID del membro da rimuovere dalla conversazione.

Restituisce

Promise<void>

Commenti

Rimuovere le informazioni sull'identità di un membro dalla conversazione.

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

emulateOAuthCards(TurnContext | string, boolean)

Invia in modo asincrono una scheda OAuth emulata per un canale. Questo metodo supporta il framework e non deve essere chiamato direttamente per il codice.

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

Parametri

contextOrServiceUrl

TurnContext | string

URL dell'emulatore.

emulate

boolean

true per inviare una scheda OAuth emulata all'emulatore; o false per non inviare la carta.

Restituisce

Promise<void>

Commenti

Durante il test di un bot nella Bot Framework Emulator, questo metodo può emulare l'interazione della scheda OAuth.

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

Esegue in modo asincrono un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On.

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

Parametri

context

TurnContext

Contesto per il turno corrente della conversazione con l'utente.

connectionName

string

Nome della connessione di autenticazione da usare.

userId

string

ID utente associato al token.

tokenExchangeRequest

TokenExchangeRequest

I dettagli della richiesta di scambio, un token per scambiare o un URI da scambiare.

appCredentials

CoreAppCredentials

Facoltativa. CoreAppCredentials per OAuth.

Restituisce

Promise<TokenResponse>

getAadTokens(TurnContext, string, string[])

Disconnette in modo asincrono l'utente dal server token.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

connectionName

string

Nome della connessione di autenticazione da usare.

resourceUrls

string[]

Elenco degli URL delle risorse per recuperare i token.

Restituisce

Promise<[key: string]: TokenResponse>

Mappa degli oggetti TokenResponse in base all'URL della risorsa.

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

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

Parametri

context

TurnContext

connectionName

string

resourceUrls

string[]

oAuthAppCredentials

CoreAppCredentials

Restituisce

Promise<[key: string]: TokenResponse>

getActivityMembers(TurnContext, string)

Elenca in modo asincrono i membri di un'attività specificata.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

activityId

string

Facoltativa. ID dell'attività per ottenere i membri di . Se non specificato, viene usato l'ID attività corrente.

Restituisce

Promise<ChannelAccount[]>

Matrice di oggetti ChannelAccount per gli utenti coinvolti in una determinata attività.

Commenti

Restituisce una matrice di oggetti ChannelAccount per gli utenti coinvolti in un'attività specificata.

Questo è diverso da getConversationMembers in che restituirà solo gli utenti direttamente coinvolti nell'attività, non tutti i membri della conversazione.

getConversationMembers(TurnContext)

Elenca in modo asincrono i membri della conversazione corrente.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

Restituisce

Promise<ChannelAccount[]>

Matrice di oggetti ChannelAccount per tutti gli utenti attualmente coinvolti in una conversazione.

Commenti

Restituisce una matrice di oggetti ChannelAccount per tutti gli utenti attualmente coinvolti in una conversazione.

Questo è diverso da getActivityMembers in che restituirà tutti i membri della conversazione, non solo quelli direttamente coinvolti in un'attività specifica.

getConversations(TurnContext | string, string)

Per il canale specificato, ottiene in modo asincrono una pagina delle conversazioni in cui questo bot ha partecipato.

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

Parametri

contextOrServiceUrl

TurnContext | string

URL del server di canale per eseguire query o un oggetto TurnContext da una conversazione nel canale.

continuationToken

string

Facoltativa. Token di continuazione dalla pagina precedente dei risultati. Omettere questo parametro o usare undefined per recuperare la prima pagina dei risultati.

Restituisce

Promise<ConversationsResult>

Oggetto ConversationsResult contenente una pagina di risultati e un token di continuazione.

Commenti

La proprietà conversazioni del valore restituito contiene una pagina di oggetti ConversationMembers . L'ID di ogni oggetto è l'ID di una conversazione in cui il bot ha partecipato a questo canale. Questo metodo può essere chiamato dall'esterno del contesto di una conversazione, poiché sono necessarie solo le credenziali e l'URL del servizio del bot.

I batch del canale generano pagine. Se la proprietà continuationToken del risultato non è vuota, sono disponibili altre pagine da ottenere. Usare il token restituito per ottenere la pagina successiva dei risultati. Se il parametro è un TurnContext, l'URL contextOrServiceUrl del server di canale viene recuperato da contextOrServiceUrl. attività. serviceUrl.

Ottiene in modo asincrono un collegamento di accesso dal server token che può essere inviato come parte di un SigninCard.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

connectionName

string

Nome della connessione di autenticazione da usare.

oAuthAppCredentials

AppCredentials

AppCredentials for OAuth.

userId

string

ID utente associato al token.

finalRedirect

string

URL finale a cui verrà reindirizzato il flusso OAuth.

Restituisce

Promise<string>

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

Parametri

context

TurnContext

connectionName

string

oAuthAppCredentials

CoreAppCredentials

userId

string

finalRedirect

string

Restituisce

Promise<string>

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

Ottenere in modo asincrono la risorsa di accesso non elaborata da inviare all'utente per l'accesso.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

connectionName

string

Nome della connessione di autenticazione da usare.

userId

string

ID utente associato al token.

finalRedirect

string

URL finale a cui verrà reindirizzato il flusso OAuth.

appCredentials

CoreAppCredentials

Facoltativa. CoreAppCredentials per OAuth.

Restituisce

Promise<SignInUrlResponse>

Oggetto BotSignInGetSignInResourceResponse .

getTokenStatus(TurnContext, string, string)

Recupera in modo asincrono lo stato del token per ogni connessione configurata per l'utente specificato.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

userId

string

Facoltativa. Se presente, l'ID dell'utente per recuperare lo stato del token. In caso contrario, viene usato l'ID dell'utente che ha inviato l'attività corrente.

includeFilter

string

Facoltativa. Elenco delimitato da virgole della connessione da includere. Se presente, il includeFilter parametro limita i token restituiti dal metodo.

Restituisce

Promise<TokenStatus[]>

Oggetti TokenStatus recuperati.

getTokenStatus(TurnContext, string, string, CoreAppCredentials)

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

Parametri

context

TurnContext

userId

string

includeFilter

string

oAuthAppCredentials

CoreAppCredentials

Restituisce

Promise<TokenStatus[]>

getUserToken(TurnContext, string, string)

Tenta in modo asincrono di recuperare il token per un utente in un flusso di accesso.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

connectionName

string

Nome della connessione di autenticazione da usare.

magicCode

string

Facoltativa. Codice di convalida immesso dall'utente.

Restituisce

Promise<TokenResponse>

Oggetto TokenResponse contenente il token utente.

getUserToken(TurnContext, string, string, CoreAppCredentials)

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

Parametri

context

TurnContext

connectionName

string

magicCode

string

oAuthAppCredentials

CoreAppCredentials

Restituisce

Promise<TokenResponse>

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

Gestire una connessione web socket applicando una funzione logica a ogni richiesta di streaming.

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

Parametri

req
Request

Richiesta HTTP in ingresso

socket

INodeSocket

INodeSocket corrispondente

head

INodeBuffer

INodeBuffer corrispondente

logic

(context: TurnContext) => Promise<void>

Funzione logica da applicare

Restituisce

Promise<void>

una promessa che rappresenta l'operazione asincrona.

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

Elaborare una richiesta Web applicando una funzione logica.

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

Parametri

req
Request

Richiesta HTTP in ingresso

res
Response

Risposta HTTP corrispondente

logic

(context: TurnContext) => Promise<void>

Funzione logica da applicare

Restituisce

Promise<void>

una promessa che rappresenta l'operazione asincrona.

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

Crea in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso.

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

Parametri

req
WebRequest

Oggetto richiesta di stile Express o Restify.

res
WebResponse

Oggetto risposta di tipo Express o Restify.

logic

(context: TurnContext) => Promise<any>

Funzione da chiamare alla fine della pipeline middleware.

Restituisce

Promise<void>

Commenti

Si tratta del modo principale in cui un bot riceve i messaggi in ingresso e definisce un turno nella conversazione. Questo metodo:

  1. Analizza e autentica una richiesta in ingresso.
    • L'attività viene letto dal corpo della richiesta in ingresso. Verrà restituito un errore se l'attività non può essere analizzata.
    • L'identità appId del mittente viene autenticata come emulatore o un server Microsoft valido, usando il bot e appPassword. La richiesta viene rifiutata se l'identità del mittente non viene verificata.
  2. Crea un oggetto TurnContext per l'attività ricevuta.
    • Questo oggetto viene eseguito con un proxy revocabile.
    • Al termine di questo metodo, il proxy viene revocato.
  3. Invia il contesto di turno tramite la pipeline middleware dell'adapter.
  4. Invia il contesto di turno alla logic funzione.
    • Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento. La restituzione di una promessa (o la fornitura di un async gestore) causerà l'attesa del completamento di qualsiasi operazione asincrona.
    • Al termine della funzione, la logic catena di promesse configurata dal middleware viene risolta.

Suggerimento

Se viene visualizzato l'errore TypeError: Cannot perform 'set' on a proxy that has been revoked nell'output della console del bot, la causa probabile è che una funzione asincrona è stata usata senza usare la await parola chiave. Assicurarsi che tutte le funzioni asincrone usino await!

Il middleware può corto circuito un turno. In questo caso, il middleware successivo e la funzione non viene chiamata. Tuttavia, tutto il logic middleware prima di questo punto viene ancora eseguito al completamento. Per altre informazioni sulla pipeline middleware, vedere il funzionamento dei bot e gli articoli del middleware . Usare il metodo use dell'adapter per aggiungere middleware all'adapter.

Ad esempio:

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 in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso.

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

Parametri

activity

Activity

Attività da elaborare.

logic

(context: TurnContext) => Promise<any>

Funzione da chiamare alla fine della pipeline middleware.

Restituisce

Promise<void>

Commenti

Si tratta del modo principale in cui un bot riceve i messaggi in ingresso e definisce un turno nella conversazione. Questo metodo:

  1. Crea un oggetto TurnContext per l'attività ricevuta.
    • Questo oggetto viene eseguito con un proxy revocabile.
    • Al termine di questo metodo, il proxy viene revocato.
  2. Invia il contesto di turno tramite la pipeline middleware dell'adapter.
  3. Invia il contesto di turno alla logic funzione.
    • Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento. La restituzione di una promessa (o la fornitura di un async gestore) causerà l'attesa del completamento di qualsiasi operazione asincrona.
    • Al termine della funzione, la logic catena di promesse configurata dal middleware viene risolta.

Il middleware può corto circuito un turno. In questo caso, il middleware successivo e la funzione non viene chiamata. Tuttavia, tutto il logic middleware prima di questo punto viene ancora eseguito al completamento. Per altre informazioni sulla pipeline middleware, vedere il funzionamento dei bot e gli articoli del middleware . Usare il metodo use dell'adapter per aggiungere middleware all'adapter.

processRequest(IReceiveRequest)

Controlla la validità della richiesta e tenta di eseguire il mapping dell'endpoint virtuale corretto, quindi genera e restituisce una risposta se appropriato.

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

Parametri

request

IReceiveRequest

Oggetto ReceiveRequest dal canale connesso.

Restituisce

Promise<StreamingResponse>

Risposta creata da BotAdapter da inviare al client che ha generato la richiesta.

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 del contesto di turno o sendActivities dal codice del bot.

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

Parametri

context

TurnContext

Oggetto 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 ricevuti. Verrà restituito un oggetto di risposta per ogni attività inviata. Per message le attività che conterrà l'ID del messaggio recapitato.

signOutUser(TurnContext, string, string)

Disconnette in modo asincrono l'utente dal server token.

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

Parametri

context

TurnContext

Oggetto contesto per il turno.

connectionName

string

Nome della connessione di autenticazione da usare.

userId

string

ID dell'utente da disconnettersi.

Restituisce

Promise<void>

signOutUser(TurnContext, string, string, CoreAppCredentials)

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

Parametri

context

TurnContext

connectionName

string

userId

string

oAuthAppCredentials

CoreAppCredentials

Restituisce

Promise<void>

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 contesto per il turno.

activity

Partial<Activity>

Versione aggiornata dell'attività da sostituire.

Restituisce

Promise<ResourceResponse | void>

Oggetto Promise che rappresenta resourceResponse per l'operazione.

Commenti

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

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

Connette il gestore a un server Named Pipe e inizia ad ascoltare le richieste in ingresso.

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

Parametri

logic

(context: TurnContext) => Promise<any>

Logica che gestirà le richieste in ingresso.

pipeName

string

Nome della pipe denominata da usare durante la creazione del server.

retryCount

number

Numero di volte in cui tentare di associare la pipe in ingresso e in uscita

onListen

() => void

Callback facoltativo che viene attivato una volta quando il server è in ascolto sia sulla pipe in ingresso che in uscita

Restituisce

Promise<void>

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

Elaborare la richiesta iniziale per stabilire una connessione a lungo termine tramite un server di streaming.

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

Parametri

req
WebRequest

Richiesta di connessione.

socket

INodeSocket

Connessione socket non elaborata tra il bot (server) e il chiamante (client).

head

INodeBuffer

Primo pacchetto del flusso aggiornato.

logic

(context: TurnContext) => Promise<any>

Logica che gestisce le richieste di streaming in ingresso per la durata della connessione WebSocket.

Restituisce

Promise<void>

Dettagli dei metodi ereditati

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

Ereditato da BotAdapter.continueConversationAsync

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

Ereditato da BotAdapter.continueConversationAsync

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

Ereditato da BotAdapter.continueConversationAsync

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.

Ereditato da BotAdapter.createConversationAsync

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.

Ereditato da BotAdapter.use