BotFrameworkAdapter class
Avviso
Questa API è ora deprecata.
Use CloudAdapter instead.
- Extends
-
BotAdapter
Costruttori
| Bot |
Crea una nuova istanza della classe BotFrameworkAdapter . |
Proprietà
| is |
Usato nei contesti di streaming per verificare se la connessione di streaming è ancora aperta per il bot per inviare attività. |
| Token |
Proprietà ereditate
| Bot |
|
| Connector |
|
| OAuth |
|
| on |
Metodi
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo. |
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo. |
| create |
Crea un client connettore. |
| create |
Creare un ConnectorClient con claimsIdentity. |
| create |
Creare un ConnectorClient con claimsIdentity e un gruppo di destinatari esplicito. |
| create |
Crea e avvia in modo asincrono una conversazione con un utente in un canale. |
| create |
Crea e avvia in modo asincrono una conversazione con un utente in un canale. |
| delete |
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. |
| delete |
Rimuove in modo asincrono un membro dalla conversazione corrente. |
| emulate |
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. |
| exchange |
Esegue in modo asincrono un'operazione di scambio di token, ad esempio per l'accesso Single Sign-On. |
| get |
Disconnette in modo asincrono l'utente dal server token. |
| get |
|
| get |
Elenca in modo asincrono i membri di un'attività specificata. |
| get |
Elenca in modo asincrono i membri della conversazione corrente. |
| get |
Per il canale specificato, ottiene in modo asincrono una pagina delle conversazioni in cui questo bot ha partecipato. |
| get |
Ottiene in modo asincrono un collegamento di accesso dal server token che può essere inviato come parte di un SigninCard. |
| get |
|
| get |
Ottenere in modo asincrono la risorsa di accesso non elaborata da inviare all'utente per l'accesso. |
| get |
Recupera in modo asincrono lo stato del token per ogni connessione configurata per l'utente specificato. |
| get |
|
| get |
Tenta in modo asincrono di recuperare il token per un utente in un flusso di accesso. |
| get |
|
| process(Request, INode |
Gestire una connessione web socket applicando una funzione logica a ogni richiesta di streaming. |
| process(Request, Response, (context: Turn |
Elaborare una richiesta Web applicando una funzione logica. |
| process |
Crea in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso. |
| process |
Crea in modo asincrono un contesto di turno ed esegue la pipeline middleware per un'attività in ingresso. |
| process |
Controlla la validità della richiesta e tenta di eseguire il mapping dell'endpoint virtuale corretto, quindi genera e restituisce una risposta se appropriato. |
| send |
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. |
| sign |
Disconnette in modo asincrono l'utente dal server token. |
| sign |
|
| update |
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 |
Connette il gestore a un server Named Pipe e inizia ad ascoltare le richieste in ingresso. |
| use |
Elaborare la richiesta iniziale per stabilire una connessione a lungo termine tramite un server di streaming. |
Metodi ereditati
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo. |
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo. |
| continue |
Riprende in modo asincrono una conversazione con un utente, possibilmente dopo qualche tempo. |
| create |
Crea una conversazione nel canale specificato. |
| use((context: Turn |
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:
- Salvare una copia di ConversationReference da un'attività in ingresso. Ad esempio, è possibile archiviare il riferimento alla conversazione in un database.
- Chiamare questo metodo per riprendere la conversazione in un secondo momento. Usare il riferimento salvato per accedere alla conversazione.
- In caso di esito positivo, l'adattatore genera un oggetto TurnContext e chiama il gestore della
logicfunzione. Usare lalogicfunzione 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.
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.
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>
getSignInLink(TurnContext, string, CoreAppCredentials, string, 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
- 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
- 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:
- 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à
appIddel mittente viene autenticata come emulatore o un server Microsoft valido, usando il bot eappPassword. La richiesta viene rifiutata se l'identità del mittente non viene verificata.
- 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.
- Invia il contesto di turno tramite la pipeline middleware dell'adapter.
- Invia il contesto di turno alla
logicfunzione.- Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento.
La restituzione di una promessa (o la fornitura di un
asyncgestore) causerà l'attesa del completamento di qualsiasi operazione asincrona. - Al termine della funzione, la
logiccatena di promesse configurata dal middleware viene risolta.
- Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento.
La restituzione di una promessa (o la fornitura di un
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:
- 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.
- Invia il contesto di turno tramite la pipeline middleware dell'adapter.
- Invia il contesto di turno alla
logicfunzione.- Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento.
La restituzione di una promessa (o la fornitura di un
asyncgestore) causerà l'attesa del completamento di qualsiasi operazione asincrona. - Al termine della funzione, la
logiccatena di promesse configurata dal middleware viene risolta.
- Il bot può eseguire il routing o l'elaborazione aggiuntivi in questo momento.
La restituzione di una promessa (o la fornitura di un
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