Поделиться через


Начало беседы в API Direct Line 3.0

Общения Direct Line открываются клиентами явным образом и могут выполняться, пока бот и клиент участвуют в них и имеют действительные учетные данные. Бот и клиент могут отправлять сообщения, пока общение остается открытым. К определенному диалогу могут подключаться несколько клиентов, и каждый из них может участвовать в нем от имени нескольких пользователей.

Открытие нового общения

Чтобы открыть новый диалог со стороны клиента, передайте запрос POST в конечную точку /v3/directline/conversations.

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

Приведенные ниже фрагменты кода содержат пример запроса и ответа на начальный диалог.

Запрос

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

Ответ

Если запрос выполнен, ответ будет содержать идентификатор общения, маркер и значение, указывающее количество секунд до истечения срока действия маркера, и URL-адрес потока, который может быть использован пользователем для получения действий через потоковую передачу WebSocket.

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..."
}

Как правило, запрос на начало беседы используется для открытия новой беседы, а код состояния HTTP 201 возвращается, если новая беседа успешно запущена. Однако если клиент отправляет запрос на начало беседы с маркером Direct Line в заголовкеAuthorization, который ранее использовался для запуска беседы с помощью операции запуска беседы, возвращается код состояния HTTP 200, указывающий, что запрос был приемлемым, но не был создан (так как он уже существует).

Совет

На подключение к URL-адресу потока через протокол WebSocket выделяется 60 секунд. Если подключение невозможно установить в течение этого времени, вы можете повторно подключиться к беседе , чтобы создать новый URL-адрес потока.

Запуск беседы и создание маркера

Операция запуска диалога (POST /v3/directline/conversations) аналогична операции создания маркера (POST /v3/directline/tokens/generate) в том, что обе операции возвращают объект token , который можно использовать для доступа к одной беседе. Однако операция запуска диалога также запускает беседу, обращается к боту и создает URL-адрес потока WebSocket, в то время как операция создания маркера не выполняет ни одного из этих действий.

Если вы планируете немедленно начать беседу с клиентом, используйте операцию запуска диалога. Если вы планируете распространять маркер для клиентов и хотите, чтобы они инициировали беседу, используйте операцию создания маркера .

Дополнительные ресурсы