Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Pode permitir que a sua aplicação cliente comunique com o seu bot usando a API Direct Line 3.0. A Direct Line API 3.0 utiliza REST e JSON padrão da indústria sobre HTTPS.
Base URI
Para aceder à Direct Line API 3.0, utilize um destes URIs base para todos os pedidos de API:
Para bots globais, use
https://directline.botframework.comPara um bot regional, introduza o seguinte uri de acordo com a região selecionada:
Região Base URI Europa https://europe.directline.botframework.comÍndia https://india.directline.botframework.com
Sugestão
Um pedido pode falhar se usar o URI base global para um bot regional, pois alguns pedidos podem ultrapassar limites geográficos.
Cabeçalhos
Para além dos cabeçalhos padrão de pedido HTTP, um pedido API Direct Line deve incluir um Authorization cabeçalho que especifique um segredo ou token para autenticar o cliente que está a emitir o pedido. Especifique o Authorization cabeçalho usando este formato:
Authorization: Bearer SECRET_OR_TOKEN
Para detalhes sobre como obter um segredo ou token que o seu cliente possa usar para autenticar os seus pedidos da API Direct Line, consulte Autenticação.
Códigos de estado HTTP
O código de estado HTTP que é devolvido com cada resposta indica o resultado do pedido correspondente.
| Código de estado de HTTP | Meaning |
|---|---|
| 200 | O pedido foi bem-sucedido. |
| 201 | O pedido foi bem-sucedido. |
| 202 | O pedido foi aceite para processamento. |
| 204 | O pedido foi bem-sucedido, mas nenhum conteúdo foi devolvido. |
| 400 | O pedido estava mal formado ou incorreto. |
| 401 | O cliente não está autorizado a fazer o pedido. Frequentemente, este código de estado ocorre porque o Authorization cabeçalho está em falta ou está malformado. |
| 403 | O cliente não pode realizar a operação solicitada. A operação pode falhar pelas seguintes razões.
|
| 404 | O recurso solicitado não foi encontrado. Normalmente, este código de estado indica um URI de pedido inválido. |
| 500 | Ocorreu um erro interno no servidor dentro do serviço Direct Line. |
| 502 | O bot está indisponível ou devolveu um erro. Este é um código de erro comum. |
Note
O código de estado HTTP 101 é usado no caminho de ligação WebSocket, embora provavelmente seja tratado pelo seu cliente WebSocket.
Errors
Qualquer resposta que especifique um código de estado HTTP no intervalo 4xx ou 5xx incluirá um objeto ErrorResponse no corpo da resposta que forneça informação sobre o erro. Se receber uma resposta de erro no intervalo 4xx, inspecione o objeto ErrorResponse para identificar a causa do erro e resolver o problema antes de submeter novamente o pedido.
Note
Os códigos de estado HTTP e os valores especificados na code propriedade dentro do objeto ErrorResponse são estáveis. Os valores especificados na message propriedade dentro do objeto ErrorResponse podem mudar ao longo do tempo.
Os excertos seguintes mostram um pedido de exemplo e a resposta de erro resultante.
Pedido
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Resposta
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Operações com tokens
Use estas operações para criar ou atualizar um token que um cliente possa usar para aceder a uma única conversa.
| Operação | Description |
|---|---|
| Gerar Token | Gera um token para uma nova conversa. |
| Atualizar token | Atualize um token. |
Gerar Token
Gera um token válido para uma conversa.
POST /v3/directline/tokens/generate
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Um objeto TokenParameters |
| Devoluções | Um objeto de Conversa |
Token de atualização
Atualiza o token.
POST /v3/directline/tokens/refresh
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | n/a |
| Devoluções | Um objeto de Conversa |
Operações de conversação
Use estas operações para iniciar uma conversa com o seu bot e trocar atividades entre cliente e bot.
| Operação | Description |
|---|---|
| Iniciar Conversa | Abre uma nova conversa com o bot. |
| Obtenha Informações sobre Conversas | Obtém informações sobre uma conversa existente. Esta operação gera um novo URL de fluxo WebSocket que um cliente pode usar para se reconectar a uma conversa. |
| Receba Atividades | Recupera atividades do bot. |
| Enviar uma Atividade | Envia uma atividade para o bot. |
| Carregar e Enviar Ficheiro(s) | Carrega e envia ficheiro(s) como anexo(s). |
Iniciar Conversa
Abre uma nova conversa com o bot.
POST /v3/directline/conversations
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Um objeto TokenParameters |
| Devoluções | Um objeto de Conversa |
Obtenha Informações sobre Conversas
Obtém informações sobre uma conversa existente e também gera um novo URL de fluxo WebSocket que um cliente pode usar para se reconectar a uma conversa. Pode, opcionalmente, fornecer o watermark parâmetro no URI do pedido para indicar a mensagem mais recente vista pelo cliente.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | n/a |
| Devoluções | Um objeto de Conversa |
Receba Atividades
Recupera atividades do bot para a conversa especificada. Pode, opcionalmente, fornecer o watermark parâmetro no URI do pedido para indicar a mensagem mais recente vista pelo cliente.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | n/a |
| Devoluções | Um objeto ActivitySet . A resposta contém watermark como uma propriedade do ActivitySet objeto. Os clientes devem folhear as atividades disponíveis, aumentando o watermark valor até que nenhuma atividade seja devolvida. |
Enviar uma Atividade
Envia uma atividade para o bot.
POST /v3/directline/conversations/{conversationId}/activities
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Um objeto de Atividade |
| Devoluções | Um ResourceResponse que contém uma id propriedade que especifica o ID da Atividade enviada ao bot. |
Carregar e Enviar Ficheiro(s)
Carrega e envia ficheiro(s) como anexo(s). Defina o userId parâmetro no URI do pedido para especificar o ID do utilizador que está a enviar o(s) anexo(s).
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Para um único anexo, preenche o corpo do pedido com o conteúdo do ficheiro. Para múltiplos anexos, crie um corpo de pedido multiparte que contenha uma parte para cada anexo, e também (opcionalmente) uma parte para o objeto Activity que deve servir como recipiente para o(s) anexo(s) especificado(s). Para mais informações, consulte Enviar uma atividade ao bot. |
| Devoluções | Um ResourceResponse que contém uma id propriedade que especifica o ID da Atividade enviada ao bot. |
Note
Os ficheiros carregados são apagados após 24 horas.
Schema
O esquema Direct Line 3.0 inclui todos os objetos definidos pelo esquema Bot Framework, bem como alguns objetos específicos do Direct Line.
Objeto ActivitySet
Define um conjunto de atividades.
| Property | Tipo | Description |
|---|---|---|
| Atividades | Activity[] | Array de objetos de Atividade . |
| Marca de água | cadeia (de caracteres) | Marca máxima de atividades dentro do conjunto. Um cliente pode usar esse watermark valor para indicar a mensagem mais recente que viu, seja ao recuperar atividades do bot ou ao gerar um novo URL de fluxo WebSocket. |
Objeto de conversa
Define uma conversa Direct Line.
| Property | Tipo | Description |
|---|---|---|
| conversationId | cadeia (de caracteres) | ID que identifica de forma única a conversa para a qual o token especificado é válido. |
| eTag | cadeia (de caracteres) | Um ETag HTTP (etiqueta de entidade). |
| expires_in | número | Número de segundos até o token expirar. |
| referenceGrammarId | cadeia (de caracteres) | ID para a gramática de referência deste bot. |
| streamUrl | cadeia (de caracteres) | URL para o fluxo de mensagens da conversa. |
| token | cadeia (de caracteres) | Token válido para a conversa especificada. |
Objeto TokenParameters
Parâmetros para criar um token.
| Property | Tipo | Description |
|---|---|---|
| eTag | cadeia (de caracteres) | Um ETag HTTP (etiqueta de entidade). |
| trustedOrigins | string[] | Origens confiáveis para incorporar no token. |
| user | ChannelAccount | Conta de utilizador para incorporar no token. |
Activities
Para cada atividade que um cliente recebe de um bot via Direct Line:
- Os cartões de anexo são preservados.
- Os URLs dos anexos carregados estão ocultos com um link privado.
- A
channelDatapropriedade está preservada sem modificações.
Os clientes podem receber múltiplas atividades do bot como parte de um ActivitySet.
Quando um cliente envia um Activity para um bot via Direct Line:
- A
typepropriedade especifica a atividade de tipo que está a enviar (normalmente mensagem). - A
frompropriedade deve ser preenchida com um ID de utilizador, escolhido pelo cliente. - Os anexos podem conter URLs para recursos existentes ou URLs carregados através do endpoint do anexo Direct Line.
- A
channelDatapropriedade está preservada sem modificações. - O tamanho total da atividade, quando serializada para JSON e encriptada, não pode exceder 256K caracteres. Recomendamos que mantenha as atividades abaixo dos 150 mil. Se forem necessários mais dados, considere dividir a atividade ou usar anexos.
Os clientes podem enviar uma única atividade por pedido.