Iniciar una conversación en Direct line API 3,0Start a conversation in Direct Line API 3.0

Los clientes pueden abrir las conversaciones de Direct Line explícitamente y estas se pueden ejecutar siempre y cuando el cliente y el bot participen y tengan credenciales válidas.Direct Line conversations are explicitly opened by clients and may run as long as the bot and client participate and have valid credentials. Mientras la conversación está abierta, el bot y el cliente pueden enviar mensajes.While the conversation is open, both the bot and client may send messages. Más de un cliente puede conectarse a una conversación determinada y cada cliente puede participar en nombre de varios usuarios.More than one client may connect to a given conversation and each client may participate on behalf of multiple users.

Apertura de una nueva conversaciónOpen a new conversation

Para abrir una conversación nueva desde el cliente, emita una solicitud POST al punto de conexión /v3/directline/conversations.To open a new conversation from your client, issue POST to the /v3/directline/conversations endpoint.

POST https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer SECRET_OR_TOKEN

Los fragmentos de código siguientes proporcionan un ejemplo de la solicitud iniciar conversación y la respuesta.The following snippets provide an example of the start conversation request and response.

SolicitudRequest

POST https://directline.botframework.com/v3/directline/conversations
Authorization: Bearer RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn

ResponseResponse

Si la solicitud es correcta, la respuesta contendrá un identificador para la conversación, un token, un valor que indica el número de segundos hasta que expire el token y una dirección URL de secuencia que el cliente puede usar para recibir actividades mediante la secuencia de WebSocket.If the request is successful, the response will contain an ID for the conversation, a token, a value that indicates the number of seconds until the token expires, and a stream URL that the client may use to receive activities via WebSocket stream.

HTTP/1.1 201 Created
[other headers]
{
  "conversationId": "abc123",
  "token": "RCurR_XV9ZA.cwA.BKA.iaJrC8xpy8qbOF5xnR2vtCX7CZj0LdjAPGfiCpg4Fv0y8qbOF5xPGfiCpg4Fv0y8qqbOF5x8qbOF5xn",
  "expires_in": 1800,
  "streamUrl": "https://directline.botframework.com/v3/directline/conversations/abc123/stream?t=RCurR_XV9ZA.cwA..."
}

Normalmente, se usa una solicitud iniciar conversación para abrir una nueva conversación y se devuelve un código de estado HTTP 201 si la nueva conversación se ha iniciado correctamente.Typically, a start conversation request is used to open a new conversation and an HTTP 201 status code is returned if the new conversation is successfully started. Sin embargo, si un cliente envía una solicitud iniciar conversación con un token de línea directa en el Authorization encabezado que se ha usado anteriormente para iniciar una conversación mediante la operación iniciar conversación, se devolverá un código de estado http 200 para indicar que la solicitud era aceptable pero no se creó ninguna conversación (tal como ya existía).However, if a client submits a start conversation request with a Direct Line token in the Authorization header that has previously been used to start a conversation using the start conversation operation, an HTTP 200 status code will be returned to indicate that the request was acceptable but no conversation was created (as it already existed).

Sugerencia

Tendrá 60 segundos para conectarse a la dirección URL de secuencia de WebSocket.You have 60 seconds to connect to the WebSocket stream URL. Si no se puede establecer la conexión durante este tiempo, puede volver a conectarse a la conversación para generar una nueva dirección URL de secuencia.If the connection cannot be established during this time, you can reconnect to the conversation to generate a new stream URL.

Iniciar conversación frente a generar tokenStart conversation versus generate token

La operación iniciar conversación ( POST /v3/directline/conversations ) es similar a la operación generar token ( POST /v3/directline/tokens/generate ) en que ambas operaciones devuelven un token que se puede utilizar para tener acceso a una sola conversación.The start conversation operation (POST /v3/directline/conversations) is similar to the generate token operation (POST /v3/directline/tokens/generate) in that both operations return a token that can be used to access a single conversation. Sin embargo, la operación iniciar conversación también inicia la conversación, se pone en contacto con el bot y crea una dirección URL de flujo WebSocket, mientras que la operación generar token no realiza ninguna de estas acciones.However, the start conversation operation also starts the conversation, contacts the bot, and creates a WebSocket stream URL, whereas the generate token operation does none of these things.

Si desea iniciar la conversación inmediatamente con el cliente, use la operación iniciar conversación.If you intend to start the conversation immediately with your client, use the start conversation operation. Si tiene previsto distribuir el token a los clientes y desea que inicien la conversación, utilice en su lugar la operación generar token .If you plan to distribute the token to clients and want them to initiate the conversation, use the generate token operation instead.

Recursos adicionalesAdditional resources