Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Puede permitir que la aplicación cliente se comunique con el bot mediante Direct Line API 3.0. Direct Line API 3.0 usa REST estándar del sector y JSON a través de HTTPS.
Base URI
Para acceder a Direct Line API 3.0, use uno de estos URI base para todas las solicitudes de API:
En el caso de los bots globales, use
https://directline.botframework.comEn el caso de un bot regional, escriba el siguiente URI según la región seleccionada:
Region Base URI Europe https://europe.directline.botframework.comIndia https://india.directline.botframework.com
Sugerencia
Es posible que se produzca un error en una solicitud si usa el URI base global para un bot regional, ya que algunas solicitudes podrían ir más allá de los límites geográficos.
Headers
Además de los encabezados de solicitud HTTP estándar, una solicitud de API de Direct Line debe incluir un Authorization encabezado que especifique un secreto o token para autenticar al cliente que emite la solicitud. Especifique el Authorization encabezado con este formato:
Authorization: Bearer SECRET_OR_TOKEN
Para más información sobre cómo obtener un secreto o token que el cliente puede usar para autenticar sus solicitudes de API de Direct Line, consulte Autenticación.
Códigos de estado HTTP
El código de estado HTTP que se devuelve con cada respuesta indica el resultado de la solicitud correspondiente.
| Código de estado HTTP | Meaning |
|---|---|
| 200 | La solicitud tuvo éxito. |
| 201 | La solicitud tuvo éxito. |
| 202 | La solicitud ha sido aceptada para su procesamiento. |
| 204 | La solicitud se realizó correctamente, pero no se devolvió contenido. |
| 400 | La solicitud tiene un formato incorrecto o es incorrecto. |
| 401 | El cliente no está autorizado para realizar la solicitud. A menudo, este código de estado se produce porque falta el Authorization encabezado o tiene un formato incorrecto. |
| 403 | El cliente no puede realizar la operación solicitada. La operación puede producir un error por los siguientes motivos.
|
| 404 | No se encontró el recurso solicitado. Normalmente, este código de estado indica un URI de solicitud no válido. |
| 500 | Error interno del servidor en el servicio Direct Line. |
| 502 | El bot no está disponible o devolvió un error. Se trata de un código de error común. |
Note
El código de estado HTTP 101 se usa en la ruta de acceso de conexión de WebSocket, aunque es probable que el cliente de WebSocket lo controle.
Errors
Cualquier respuesta que especifique un código de estado HTTP en el intervalo 4xx o el intervalo 5xx incluirá un objeto ErrorResponse en el cuerpo de la respuesta que proporciona información sobre el error. Si recibe una respuesta de error en el intervalo 4xx, inspeccione el objeto ErrorResponse para identificar la causa del error y resolver el problema antes de volver a enviar la solicitud.
Note
Los códigos de estado HTTP y los valores especificados en la code propiedad dentro del objeto ErrorResponse son estables. Los valores especificados en la message propiedad dentro del objeto ErrorResponse pueden cambiar con el tiempo.
Los fragmentos de código siguientes muestran una solicitud de ejemplo y la respuesta de error resultante.
Solicitud
POST https://directline.botframework.com/v3/directline/conversations/abc123/activities
[detail omitted]
Respuesta
HTTP/1.1 502 Bad Gateway
[other headers]
{
"error": {
"code": "BotRejectedActivity",
"message": "Failed to send activity: bot returned an error"
}
}
Operaciones de token
Use estas operaciones para crear o actualizar un token que un cliente pueda usar para acceder a una sola conversación.
| Operation | Description |
|---|---|
| Generar token | Genere un token para una nueva conversación. |
| Token de actualización | Actualice un token. |
Generar token
Genera un token válido para una conversación.
POST /v3/directline/tokens/generate
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | Un objeto TokenParameters |
| Devolución | Un objeto Conversation |
Actualizar token
Actualiza el token.
POST /v3/directline/tokens/refresh
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | n/a |
| Devolución | Un objeto Conversation |
Operaciones de conversación
Use estas operaciones para abrir una conversación con el bot y intercambiar actividades entre el cliente y el bot.
| Operation | Description |
|---|---|
| Iniciar conversación | Abre una nueva conversación con el bot. |
| Obtener información de conversación | Obtiene información sobre una conversación existente. Esta operación genera una nueva dirección URL de secuencia de WebSocket que un cliente puede usar para volver a conectarse a una conversación. |
| Obtener actividades | Recupera las actividades del bot. |
| Enviar una actividad | Envía una actividad al bot. |
| Cargar y enviar archivos | Carga y envía archivos como datos adjuntos. |
Iniciar conversación
Abre una nueva conversación con el bot.
POST /v3/directline/conversations
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | Un objeto TokenParameters |
| Devolución | Un objeto Conversation |
Obtener información de conversación
Obtiene información sobre una conversación existente y también genera una nueva dirección URL de secuencia de WebSocket que un cliente puede usar para volver a conectarse a una conversación. Opcionalmente, puede proporcionar el watermark parámetro en el URI de solicitud para indicar el mensaje más reciente visto por el cliente.
GET /v3/directline/conversations/{conversationId}?watermark={watermark_value}
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | n/a |
| Devolución | Un objeto Conversation |
Obtener actividades
Recupera las actividades del bot para la conversación especificada. Opcionalmente, puede proporcionar el watermark parámetro en el URI de solicitud para indicar el mensaje más reciente visto por el cliente.
GET /v3/directline/conversations/{conversationId}/activities?watermark={watermark_value}
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | n/a |
| Devolución | Objeto ActivitySet . La respuesta contiene watermark como propiedad del ActivitySet objeto . Los clientes deben paginar las actividades disponibles avanzando el watermark valor hasta que no se devuelva ninguna actividad. |
Enviar una actividad
Envía una actividad al bot.
POST /v3/directline/conversations/{conversationId}/activities
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | Un objeto Activity |
| Devolución |
ResourceResponse que contiene una id propiedad que especifica el identificador de la actividad que se envió al bot. |
Cargar y enviar archivos
Carga y envía archivos como datos adjuntos. Establezca el userId parámetro en el URI de solicitud para especificar el identificador del usuario que envía los datos adjuntos.
POST /v3/directline/conversations/{conversationId}/upload?userId={userId}
| Contenido | Description |
|---|---|
| Cuerpo de la solicitud | Para un único dato adjunto, rellene el cuerpo de la solicitud con el contenido del archivo. Para varios datos adjuntos, cree un cuerpo de solicitud de varias partes que contenga una parte para cada dato adjunto y también (opcionalmente) una parte para el objeto Activity que debe servir como contenedor para los datos adjuntos especificados. Para más información, consulte Envío de una actividad al bot. |
| Devolución |
ResourceResponse que contiene una id propiedad que especifica el identificador de la actividad que se envió al bot. |
Note
Los archivos cargados se eliminan después de 24 horas.
Schema
El esquema Direct Line 3.0 incluye todos los objetos definidos por el esquema de Bot Framework, así como algunos objetos específicos de Direct Line.
ActivitySet (objeto)
Define un conjunto de actividades.
| Propiedad | Tipo | Description |
|---|---|---|
| actividades | Activity[] | Matriz de objetos Activity . |
| marca de agua | string | Marca máxima de agua de las actividades dentro del conjunto. Un cliente puede usar el watermark valor para indicar el mensaje más reciente que ha visto al recuperar actividades del bot o al generar una nueva dirección URL de secuencia de WebSocket. |
Objeto Conversation
Define una conversación Direct Line.
| Propiedad | Tipo | Description |
|---|---|---|
| conversationId | string | Identificador que identifica de forma única la conversación para la que el token especificado es válido. |
| eTag | string | Una ETag HTTP (etiqueta de entidad). |
| expires_in | número | Número de segundos hasta que expire el token. |
| referenceGrammarId | string | Identificador de la gramática de referencia para este bot. |
| streamUrl | string | Dirección URL de la secuencia de mensajes de la conversación. |
| token | string | Token válido para la conversación especificada. |
TokenParameters (objeto)
Parámetros para crear un token.
| Propiedad | Tipo | Description |
|---|---|---|
| eTag | string | Una ETag HTTP (etiqueta de entidad). |
| trustedOrigins | string[] | Orígenes de confianza para insertar dentro del token. |
| usuario | ChannelAccount | Cuenta de usuario que se va a insertar en el token. |
Activities
Para cada actividad que un cliente recibe de un bot a través de Direct Line:
- Se conservan las tarjetas de datos adjuntos.
- Las direcciones URL de los datos adjuntos cargados se ocultan con un vínculo privado.
- La
channelDatapropiedad se conserva sin modificaciones.
Los clientes pueden recibir varias actividades del bot como parte de un ActivitySet.
Cuando un cliente envía un Activity objeto a un bot a través de Direct Line:
- La
typepropiedad especifica la actividad de tipo que envía (normalmente el mensaje). - La
frompropiedad debe rellenarse con un identificador de usuario, elegido por el cliente. - Los datos adjuntos pueden contener direcciones URL a los recursos o direcciones URL existentes cargados a través del punto de conexión de datos adjuntos de Direct Line.
- La
channelDatapropiedad se conserva sin modificaciones. - El tamaño total de la actividad, cuando se serializa en JSON y se cifra, no debe superar los 256 000 caracteres. Se recomienda mantener las actividades en menos de 150 000. Si se necesitan más datos, considere la posibilidad de dividir la actividad o usar datos adjuntos.
Los clientes pueden enviar una sola actividad por solicitud.