Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Você pode habilitar seu aplicativo cliente para se comunicar com o bot usando Direct Line API 3.0. Direct Line API 3.0 usa REST e JSON padrão do setor por HTTPS.
URI Base
Para acessar Direct Line API 3.0, use uma destas URIs base para todas as solicitações de API:
Para bots globais, use
https://directline.botframework.comPara um bot regional, insira o seguinte uri de acordo com a região selecionada:
Região URI Base Europa https://europe.directline.botframework.comIndia https://india.directline.botframework.com
Dica
Uma solicitação poderá falhar se você usar o URI de base global para um bot regional, pois algumas solicitações podem ir além dos limites geográficos.
Cabeçalhos
Além dos cabeçalhos de solicitação HTTP padrão, uma solicitação de API Direct Line deve incluir um Authorization cabeçalho que especifica um segredo ou token para autenticar o cliente que está emitindo a solicitação. Especifique o Authorization cabeçalho usando este formato:
Authorization: Bearer SECRET_OR_TOKEN
Para obter detalhes sobre como obter um segredo ou token que seu cliente pode usar para autenticar suas solicitações de API Direct Line, consulte Autenticação.
Códigos de status HTTP
O código de status HTTP retornado com cada resposta indica o resultado da solicitação correspondente.
| Código de status de HTTP | Meaning |
|---|---|
| 200 | O pedido foi bem-sucedido. |
| 201 | O pedido foi bem-sucedido. |
| 202 | O pedido foi aceito para processamento. |
| 204 | A solicitação foi bem-sucedida, mas nenhum conteúdo foi retornado. |
| 400 | A solicitação foi malformada ou incorreta. |
| 401 | O cliente não está autorizado a fazer a solicitação. Geralmente, esse código de status ocorre porque o Authorization cabeçalho está ausente ou malformado. |
| 403 | O cliente não tem permissão para executar a operação solicitada. A operação pode falhar pelos seguintes motivos.
|
| 404 | O recurso solicitado não foi encontrado. Normalmente, esse código de status indica um URI de solicitação inválido. |
| 500 | Ocorreu um erro interno do servidor no serviço Direct Line. |
| 502 | O bot não está disponível ou retornou um erro. Esse é um código de erro comum. |
Note
O código de status HTTP 101 é usado no caminho de conexão do WebSocket, embora isso provavelmente seja tratado pelo seu cliente WebSocket.
Errors
Qualquer resposta que especifica um código de status HTTP no intervalo 4xx ou 5xx incluirá um objeto ErrorResponse no corpo da resposta que fornece informações sobre o erro. Se você receber uma resposta de erro no intervalo 4xx, inspecione o objeto ErrorResponse para identificar a causa do erro e resolva o problema antes de reenviar a solicitação.
Note
Os códigos de status HTTP e os code valores especificados na propriedade dentro do objeto ErrorResponse são estáveis. Os valores especificados na message propriedade dentro do objeto ErrorResponse podem ser alterados ao longo do tempo.
Os snippets a seguir mostram uma solicitação de exemplo e a resposta de erro resultante.
Solicitação
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 de token
Use essas operações para criar ou atualizar um token que um cliente pode usar para acessar uma única conversa.
| Operation | Description |
|---|---|
| Gerar token | Gere 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 |
| Retornos | Um objeto Conversation |
Atualizar token
Atualiza o token.
POST /v3/directline/tokens/refresh
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | n/a |
| Retornos | Um objeto Conversation |
Operações de conversa
Use essas operações para abrir uma conversa com seu bot e trocar atividades entre cliente e bot.
| Operation | Description |
|---|---|
| Iniciar Conversa | Abre uma nova conversa com o bot. |
| Obter informações de conversa | Obtém informações sobre uma conversa existente. Essa operação gera uma nova URL de fluxo do WebSocket que um cliente pode usar para se reconectar a uma conversa. |
| Obter atividades | Recupera atividades do bot. |
| Enviar uma atividade | Envia uma atividade para o bot. |
| Carregar e enviar arquivos | Carrega e envia arquivos como anexos. |
Iniciar a Conversa
Abre uma nova conversa com o bot.
POST /v3/directline/conversations
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Um objeto TokenParameters |
| Retornos | Um objeto Conversation |
Obter informações de conversa
Obtém informações sobre uma conversa existente e também gera uma nova URL de fluxo do WebSocket que um cliente pode usar para se reconectar a uma conversa. Opcionalmente, você pode fornecer o watermark parâmetro no URI de solicitação 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 |
| Retornos | Um objeto Conversation |
Obter atividades
Recupera atividades do bot para a conversa especificada. Opcionalmente, você pode fornecer o watermark parâmetro no URI de solicitação 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 |
| Retornos | Um objeto ActivitySet . A resposta contém watermark como uma propriedade do ActivitySet objeto. Os clientes devem percorrer as atividades disponíveis avançando o watermark valor até que nenhuma atividade seja retornada. |
Enviar uma atividade
Envia uma atividade para o bot.
POST /v3/directline/conversations/{conversationId}/activities
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Um objeto Activity |
| Retornos | Um ResourceResponse que contém uma id propriedade que especifica a ID da Atividade que foi enviada para o bot. |
Carregar e enviar arquivos
Carrega e envia arquivos como anexos. Defina o userId parâmetro no URI da solicitação para especificar a ID do usuário que está enviando os anexos.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Conteúdo | Description |
|---|---|
| Corpo da solicitação | Para um único anexo, preencha o corpo da solicitação com o conteúdo do arquivo. Para vários anexos, crie um corpo de solicitação de várias partes que contenha uma parte para cada anexo e também (opcionalmente) uma parte para o objeto Atividade que deve servir como o contêiner para os anexos especificados. Para obter mais informações, consulte Enviar uma atividade para o bot. |
| Retornos | Um ResourceResponse que contém uma id propriedade que especifica a ID da Atividade que foi enviada para o bot. |
Note
Os arquivos carregados são excluídos após 24 horas.
Schema
O esquema Direct Line 3.0 inclui todos os objetos definidos pelo esquema do Bot Framework, bem como alguns objetos específicos para Direct Line.
Objeto ActivitySet
Define um conjunto de atividades.
| Propriedade | Tipo | Description |
|---|---|---|
| atividades | Activity[] | Matriz de objetos activity . |
| marca d'água | cadeia | Marca d'água máxima das atividades dentro do conjunto. Um cliente pode usar o watermark valor para indicar a mensagem mais recente que viu ao recuperar atividades do bot ou ao gerar uma nova URL de fluxo do WebSocket. |
Objeto Conversation
Define uma conversa Direct Line.
| Propriedade | Tipo | Description |
|---|---|---|
| conversationId | cadeia | ID que identifica exclusivamente a conversa para a qual o token especificado é válido. |
| eTag | cadeia | Uma ETag HTTP (marca de entidade). |
| expires_in | número | Número de segundos até que o token expire. |
| referenceGrammarId | cadeia | ID da gramática de referência para este bot. |
| streamUrl | cadeia | URL do fluxo de mensagens da conversa. |
| token | cadeia | Token válido para a conversa especificada. |
Objeto TokenParameters
Parâmetros para criar um token.
| Propriedade | Tipo | Description |
|---|---|---|
| eTag | cadeia | Uma ETag HTTP (marca de entidade). |
| trustedOrigins | string[] | Origens confiáveis a serem inseridas no token. |
| user | ChannelAccount | Conta de usuário a ser inserida no token. |
Activities
Para cada atividade que um cliente recebe de um bot por meio de Direct Line:
- Cartões de anexo são preservados.
- As URLs para anexos carregados estão ocultas com um link privado.
- A
channelDatapropriedade é preservada sem modificação.
Os clientes podem receber várias atividades do bot como parte de um ActivitySet.
Quando um cliente envia um Activity bot por meio de Direct Line:
- A
typepropriedade especifica a atividade de tipo que está enviando (normalmente mensagem). - A
frompropriedade deve ser preenchida com uma ID de usuário, escolhida pelo cliente. - Anexos podem conter URLs para recursos ou URLs existentes carregados por meio do ponto de extremidade de anexo Direct Line.
- A
channelDatapropriedade é preservada sem modificação. - O tamanho total da atividade, quando serializada para JSON e criptografada, não deve exceder 256 mil caracteres. Recomendamos que você mantenha atividades abaixo de 150 mil. Se mais dados forem necessários, considere dividir a atividade ou usar anexos.
Os clientes podem enviar uma única atividade por solicitação.