Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

URL: https://tcl.twin24.ai/api/chats/v1/chats/{chat_id}/sessions?x_widget=1

Ссылка на документацию

Пример функции на языке python:

...

Блок кода
languagepy
firstline1
titleТело запроса в формате Json:
linenumberstrue
{
  "name": "string",
  "botIdclientExternalId": "bce7d22e-dde6-4427-b391-ebbdfda44de6string",
  "sessionIdclientMetadata": "bce7d22e-dde6-4427-b391-ebbdfda44de6",{
  "sessionTtl": 3600,
  "messengerTypevar1": "WHATSAPPval1",
    "messengerUserIdvar2": "stringval2",
  "messageBody": "string",
  "messageAttachmentsvar3": [
    "bce7d22e-dde6-4427-b391-ebbdfda44de6"val3"
  ],
  "clientNameForOperator": "string",
  "clientId}
}


Описаниеполейметода:

Поле

Тип

Обязательно

Описание

name

string

Да

Имя сессии.

clientExternalId

string

Нет

Определяемый пользователем идентификатор клиента, инициировавшего сеанс чата.

clientMetadata

object

Нет

Любые определенные пользователем пары ключ/значение в качестве переменных бота.


Ответы

Код 201

Description: Successful session creation

Блок кода
languagepy
firstline1
titleОтвет в формате JSON
linenumberstrue
{
  "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "clientExternalIdclientId": "stringbce7d22e-dde6-4427-b391-ebbdfda44de6",
  "clientPhonestartedAt": 75555673245,
  "clientEmail": "string "2018-10-31T11:56:07+00:00",
  "clientDeviceIdttl": "string"3600,
  "clientTimezonemessages": 300,[
  "clientMetadata":  {
      "var1body": "val1string",
      "var2answers": "val2",[
    "var3":    "val3string"
      }],
      "returnAnswerAsyncactions": true
}

...

Поле

...

Тип

...

Обязательно

...

Описание

...

name

...

string

...

Да

...

Имя сессии.

...

botId

...

string

...

Нет

...

Идентификатор бота.

...

sessionId

...

string

...

Нет

...

Идентификатор существующего сеанса чата.

...

sessionTtl

...

integer

...

Нет

...

Время жизни чат-сессии. Указывается в секундах и не может быть больше 12 часов. По умолчанию равен 3 600 секундам.

...

messengerType

...

string

...

Нет

...

Тип мессенджера. Указывает из какого мессенджера произведена отправка сообщения (WHATSAPP, TELEGRAM, FACEBOOK...).

...

messengerUserId

...

string

...

Нет

...

Идентификатор пользователя в конкретном мессенджере. Например для WHATSAPP это будет номер телефона.

...

messageBody

...

string

...

Нет

...

Тело сообщения.

...

messageAttachments

...

array of strings

...

Нет

...

Список вложений к сообщению.

...

clientNameForOperator

...

string

...

Нет

...

Имя клиента, которое будет видно оператору.

...

clientId

...

string

...

Нет

...

Идентификатор клиента.

...

clientExternalId

...

string

...

Нет

...

Определяемый пользователем идентификатор клиента, инициировавшего сеанс чата.

...

clientPhone

...

string

...

Нет

...

Номер телефона клиента.

...

clientEmail

...

string

...

Нет

...

Электронная почта клиента.

...

clientDeviceId

...

string

...

Нет

...

Идентификатор клиентского устройства для отправки PUSH-уведомлений.

...

clientTimezone

...

integer

...

Нет

...

Смещение часового пояса клиента в минутах.

...

clientMetadata

...

object

...

Нет

...

Любые определенные пользователем пары ключ/значение в качестве переменных бота.

...

returnAnswerAsync

...

boolean

...

Нет

...

Включение/отключение асинхронного режима.

Ответы

Код 201

Description: Successful session creation

Блок кода
languagepy
firstline1
titleОтвет в формате JSON
linenumberstrue
{
  "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "clientId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "startedAt": "2018-10-31T11:56:07+00:00",
  "ttl": 3600,
  "messages": [
[
        {
      "body": "string",
      "answers": [
        "string"
      ],
      "actions": [
        {
          "key1": "value1",
          "key2": "value2",
          "key3": "value3"
        }
      ],
      "attachments": [
        {
          "id": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
          "isPrivate": true,
          "createdAt": "2018-10-31T11:56:07+00:00",
          "name": "bot.png",
          "baseName": "bot",
          "extension": "png",
          "sugestedExtension": "png",
          "path": "string",
          "size": 12400,
          "url": "string",
          "downloadLink": "string"
        }
      ]
    }
  ]
}

...

Пример функции на языке python для отправки файла с расширением png:

Блок кода
languagepy
themeConfluence
firstline1
titleФункция отправки сообщения в чат-сессию
def senduploading_file_to_chat_session(session_id: str, file_name, file_path):file_name, file_path) -> dict:
    """
    Функция загрузки файла изображения в хранилище TWIN.
    :param file_name: Полное имя файла с расширением.
    :param file_path: Путь к файлу.
    :return: Массив данных о загруженном файле.
    """
    url = f"https://chats-apitcl.twin24.ai/api/chats/v1/sessions/{session_id}/messages"
    payloadfiles?x_widget=1"

    payload = {}
    files = [("file[]", (file_name, open(file_path, 'rb'), 'image/png'))]
    headers = {}

    headersresponse = {'Content-Type': 'multipart/form-data'}
    filse = [requests.request("POST", url, headers=headers, data=payload, files=files)

    return response.json()


Примечание: данная функция демонстрирует загрузку изображений. Если необходимо отправить pdf-файл, необходимо указать в переменной file следующее:
files = [("file[]",

...

(file_name,

...

open(file_path

...

, 'rb'), 'application/pdf'))]


Ответы

Код 201

Блок кода
languagepy
firstline1
titleОтвет в формате JSON
linenumberstrue
[
    {
        "id": "c419011c-a998-4189-b897-e82117e6a803",
        "isPrivate": true,
        "createdAt": "20232022-06-26T15:44:32+00:00",
        "contentType": "image\/pngjpeg",
        "name": "for_test.png",
        "baseName": "for_test",
        "extension": "png",
        "suggestedExtension": "png",
        "path": "",
        "size": 18463,
        "url": "string",
        "downloadLink": "string",
        "ownerId": null
    }
]


Описание полей ответа

Поле

Тип

Обязательно

Описание

id
string
Да Идентификатор файла.
isPrivate
booleanДа Отметка о приватности. True если файл загружен пользователем или оператором, False - если ботом.
Да Идентификатор файла.
isPrivate
boolean
name
stringДа Полное имя файла (с расширением).
baseName
stringДа Имя файла.
extension
stringДа Расширение файла.
suggestedExtensionstringДа Предлагаемое расширение файла.
pathstringДа Путь (расположение) во внутреннем хранилище.
sizeint64Да Размер файла в байтах.
urlstringДа Ссылка на файл во внутреннем хранилище.
downloadLinkstringДа Ссылка на скачивание файла.
ownerId
stringДа ID владельца


Далее, для отправки сообщения используется метод отправки сообщения в чат сессию (описан в начале текущего раздела). Важно, при отправке сообщения в котором прикреплён файл, указать в параметрах запроса attachments идентификатор(ы) файла(ов).

...

Описание параметров события chatMessageCreatedEmit

Поле

Тип

Обязательно

Описание

id
stringДаИдентификатор сообщения.
authorId
string
Идентификатор автора сообщения.
authorType
string
Тип автора. Определяет, кто отправил сообщение: бот или оператор.
authorName
string
Имя автора сообщения.
type
string
Тип сообщения. Может быть:
REGULAR - обычное сообщение;
TERMINAL - последнее (завершающее) сообщение в сессии. После этого сообщения сессия закрывается.
HELP - запрос помощи оператора.
body
string
Текст сообщения.
answers
array of objects
Варианты ответов (кнопки с вариантами ответов).
createdAt
string
Отметка времени о созданном сообщении.
sessionId
string
Идентификатор чат-сессии.
attachments
array of objects
Список идентификаторов вложений.
actions
string
Информация о дополнительной функциональности в данном сообщении (например форма опроса).
avatar
string
Аватар бота или оператора. Массив данных.
|  idstring
Идентификатор файла.
|  isPrivateboolean
False - бот, True - оператор
|  createdAtstring
Отметка времени о создании.
|  contentTypestring
Content type. Тип контента (тип передачи файла).
|  namestring
Полное имя файла (с расширением).
|  baseNamestring
Имя файла.
|  extensionstring
Расширение файла.
|  suggestedExtensionstring
Предлагаемое расширение файла.
|  pathstring
Путь (расположение) во внутреннем хранилище.
|  sizestring
Размер файла в байтах.
|  urlstring
Ссылка на файл во внутреннем хранилище.
|  downloadLinkstring
Ссылка на скачивание.
|  ownerIdstring
Идентификатор владельца.


Подтверждение о прочтении сообщения

...

Описание параметров события chatMessageCreatedEmit

Поле

Тип

Обязательно

Описание

id
stringДаИдентификатор сообщения.
operatorId
string
Идентификатор оператора.
operatorName
string
Имя оператора.
avatar
string
Аватар оператора.
previousOperatorId
string
Идентификатор предыдущего оператора.
previousOperatorName
string
Имя предыдущего оператора.
previousOperatorAvatar
string
Аватар предыдущего оператора.
|  idstring
Идентификатор файла.
|  isPrivateboolean
Отметка о приватности.
|  createdAtstring
Отметка времени о создании.
|  contentTypestring
Content type. Тип контента (тип передачи файла).
|  namestring
Полное имя файла (с расширением).
|  baseNamestring
Предлагаемое расширение файла.
|  extensionstring
Расширение файла.
|  suggestedExtensionstring
Предлагаемое расширение файла.
|  pathstring
Путь (расположение) во внутреннем хранилище.
|  sizestring
Размер файла в байтах.
|  urlstring
Ссылка на файл во внутреннем хранилище.


Статус оператора

Блок кода
languagepy
titleСобытие: operatorStatusChangedEmit
collapsetrue
[
    "operatorStatusChangedEmit",
    {
        "operatorId": "389",
        "previousStatus": "ACTIVE",
        "currentStatus": "PAUSED"
    }
]

...