Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile abilitare l'applicazione client per comunicare con il bot usando Direct Line API 3.0. Direct Line API 3.0 usa rest e JSON standard del settore su HTTPS.
URI di base
Per accedere all'API Direct Line 3.0, usare uno di questi URI di base per tutte le richieste API:
Per i bot globali, usare
https://directline.botframework.comPer un bot a livello di area immettere l'URI seguente in base all'area selezionata:
Area geografica URI di base Europe https://europe.directline.botframework.comIndia https://india.directline.botframework.com
Tip
Una richiesta potrebbe non riuscire se si usa l'URI di base globale per un bot a livello di area, perché alcune richieste potrebbero superare i limiti geografici.
Intestazioni
Oltre alle intestazioni di richiesta HTTP standard, una richiesta API Direct Line deve includere un'intestazione Authorization che specifica un segreto o un token per autenticare il client che esegue la richiesta. Specificare l'intestazione Authorization usando questo formato:
Authorization: Bearer SECRET_OR_TOKEN
Per informazioni dettagliate su come ottenere un segreto o un token che il client può usare per autenticare le richieste API Direct Line, vedere Autenticazione.
Codici di stato HTTP
Il codice di stato HTTP restituito con ogni risposta indica il risultato della richiesta corrispondente.
| Codice di stato HTTP | Meaning |
|---|---|
| 200 | La richiesta è stata accolta. |
| 201 | La richiesta è stata accolta. |
| 202 | La richiesta è stata accettata per l'elaborazione. |
| 204 | La richiesta ha avuto esito positivo ma non è stato restituito alcun contenuto. |
| 400 | La richiesta non è valida o non è corretta. |
| 401 | Il client non è autorizzato a effettuare la richiesta. Spesso questo codice di stato si verifica perché l'intestazione Authorization è mancante o in formato non valido. |
| 403 | Il client non è autorizzato a eseguire l'operazione richiesta. L'operazione può non riuscire per i motivi seguenti.
|
| 404 | La risorsa richiesta non è stata trovata. In genere questo codice di stato indica un URI di richiesta non valido. |
| 500 | Si è verificato un errore interno del server all'interno del servizio Direct Line. |
| 502 | Il bot non è disponibile o ha restituito un errore. Si tratta di un codice di errore comune. |
Note
Il codice di stato HTTP 101 viene usato nel percorso di connessione WebSocket, anche se è probabilmente gestito dal client WebSocket.
Errors
Qualsiasi risposta che specifica un codice di stato HTTP nell'intervallo 4xx o 5xx includerà un oggetto ErrorResponse nel corpo della risposta che fornisce informazioni sull'errore. Se viene visualizzata una risposta di errore nell'intervallo 4xx, esaminare l'oggetto ErrorResponse per identificare la causa dell'errore e risolvere il problema prima di inviare nuovamente la richiesta.
Note
I codici di stato HTTP e i valori specificati nella code proprietà all'interno dell'oggetto ErrorResponse sono stabili. I valori specificati nella message proprietà all'interno dell'oggetto ErrorResponse possono cambiare nel tempo.
I frammenti di codice seguenti mostrano una richiesta di esempio e la risposta di errore risultante.
Richiedi
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Risposta
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Operazioni token
Usare queste operazioni per creare o aggiornare un token che un client può usare per accedere a una singola conversazione.
| Operation | Description |
|---|---|
| Generare il token | Generare un token per una nuova conversazione. |
| Token di aggiornamento | Aggiornare un token. |
Genera token
Genera un token valido per una conversazione.
POST /v3/directline/tokens/generate
| Contenuto | Description |
|---|---|
| Corpo della richiesta | Oggetto TokenParameters |
| Resi | Oggetto Conversation |
Aggiorna token
Aggiorna il token.
POST /v3/directline/tokens/refresh
| Contenuto | Description |
|---|---|
| Corpo della richiesta | n/a |
| Resi | Oggetto Conversation |
Operazioni di conversazione
Usare queste operazioni per aprire una conversazione con il bot e scambiare attività tra client e bot.
| Operation | Description |
|---|---|
| Avvia conversazione | Apre una nuova conversazione con il bot. |
| Ottenere informazioni sulla conversazione | Ottiene informazioni su una conversazione esistente. Questa operazione genera un nuovo URL del flusso WebSocket che un client può usare per riconnettersi a una conversazione. |
| Ottenere attività | Recupera le attività dal bot. |
| Inviare un'attività | Invia un'attività al bot. |
| Caricare e inviare file | Carica e invia file come allegati. |
Avvia la conversazione
Apre una nuova conversazione con il bot.
POST /v3/directline/conversations
| Contenuto | Description |
|---|---|
| Corpo della richiesta | Oggetto TokenParameters |
| Resi | Oggetto Conversation |
Ottenere informazioni sulla conversazione
Ottiene informazioni su una conversazione esistente e genera anche un nuovo URL del flusso WebSocket che un client può usare per riconnettersi a una conversazione. Facoltativamente, è possibile specificare il watermark parametro nell'URI della richiesta per indicare il messaggio più recente visualizzato dal client.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
| Contenuto | Description |
|---|---|
| Corpo della richiesta | n/a |
| Resi | Oggetto Conversation |
Ottenere attività
Recupera le attività dal bot per la conversazione specificata. Facoltativamente, è possibile specificare il watermark parametro nell'URI della richiesta per indicare il messaggio più recente visualizzato dal client.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
| Contenuto | Description |
|---|---|
| Corpo della richiesta | n/a |
| Resi | Oggetto ActivitySet . La risposta contiene watermark come proprietà dell'oggetto ActivitySet . I client devono scorrere le attività disponibili avanzando il watermark valore fino a quando non vengono restituite attività. |
Inviare un'attività
Invia un'attività al bot.
POST /v3/directline/conversations/{conversationId}/activities
| Contenuto | Description |
|---|---|
| Corpo della richiesta | Oggetto Activity |
| Resi |
ResourceResponse che contiene una id proprietà che specifica l'ID dell'attività inviata al bot. |
Caricare e inviare file
Carica e invia file come allegati. Impostare il userId parametro nell'URI della richiesta per specificare l'ID dell'utente che invia gli allegati.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Contenuto | Description |
|---|---|
| Corpo della richiesta | Per un singolo allegato, popolare il corpo della richiesta con il contenuto del file. Per più allegati, creare un corpo della richiesta multipart contenente una parte per ogni allegato e anche (facoltativamente) una parte per l'oggetto Activity che deve fungere da contenitore per gli allegati specificati. Per altre informazioni, vedere Inviare un'attività al bot. |
| Resi |
ResourceResponse che contiene una id proprietà che specifica l'ID dell'attività inviata al bot. |
Note
I file caricati vengono eliminati dopo 24 ore.
Schema
Lo schema Direct Line 3.0 include tutti gli oggetti definiti dallo schema di Bot Framework, nonché alcuni oggetti specifici per Direct Line.
Oggetto ActivitySet
Definisce un set di attività.
| Property | TIPO | Description |
|---|---|---|
| attività | Activity[] | Matrice di oggetti Activity . |
| filigrana | string | Limite massimo di attività all'interno del set. Un client può usare il watermark valore per indicare il messaggio più recente visualizzato durante il recupero di attività dal bot o durante la generazione di un nuovo URL del flusso WebSocket. |
Oggetto Conversation
Definisce una conversazione Direct Line.
| Property | TIPO | Description |
|---|---|---|
| conversationId | string | ID che identifica in modo univoco la conversazione per cui il token specificato è valido. |
| eTag | string | Un ETag HTTP (tag di entità). |
| expires_in | Numero | Numero di secondi fino alla scadenza del token. |
| referenceGrammarId | string | ID per la grammatica di riferimento per questo bot. |
| streamUrl | string | URL per il flusso di messaggi della conversazione. |
| token | string | Token valido per la conversazione specificata. |
Oggetto TokenParameters
Parametri per la creazione di un token.
| Property | TIPO | Description |
|---|---|---|
| eTag | string | Un ETag HTTP (tag di entità). |
| trustedOrigins | string[] | Origini attendibili da incorporare all'interno del token. |
| user | ChannelAccount | Account utente da incorporare all'interno del token. |
Activities
Per ogni attività ricevuta da un client da un bot tramite Direct Line:
- Le schede allegati vengono mantenute.
- Gli URL per gli allegati caricati sono nascosti con un collegamento privato.
- La
channelDataproprietà viene mantenuta senza modifiche.
I client possono ricevere più attività dal bot come parte di un ActivitySet.
Quando un client invia un Activity oggetto a un bot tramite Direct Line:
- La
typeproprietà specifica l'attività di tipo che invia (in genere il messaggio). - La
fromproprietà deve essere popolata con un ID utente, scelto dal client. - Gli allegati possono contenere URL a risorse o URL esistenti caricati tramite l'endpoint dell'allegato Direct Line.
- La
channelDataproprietà viene mantenuta senza modifiche. - Le dimensioni totali dell'attività, se serializzate in JSON e crittografate, non devono superare i 256.000 caratteri. È consigliabile mantenere le attività sotto 150.000. Se sono necessari più dati, prendere in considerazione la suddivisione dell'attività o l'uso di allegati.
I client possono inviare una singola attività per ogni richiesta.