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

Ключ

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

...

Для примера интеграции мы рассмотрим простую программу. Суть и логика программы: запускается эхо-бот, который повторяет введенное в терминале пользователем сообщение. Завершение эхо-чата происходит по ключевому слову "стоп".

...

Блок кода
languagepy
firstline1
titleТело запроса в формате Json:
linenumberstrue
{
  "name": "string",
  "botId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "sessionId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "sessionTtl": 3600,
  "messengerType": "WHATSAPP",
  "messengerUserId": "string",
  "messageBody": "string",
  "messageAttachments": [
    "bce7d22e-dde6-4427-b391-ebbdfda44de6"
  ],
  "clientNameForOperator": "string",
  "clientId": "bce7d22e-dde6-4427-b391-ebbdfda44de6",
  "clientExternalId": "string",
  "clientPhone": 75555673245,
  "clientEmail": "string",
  "clientDeviceId": "string",
  "clientTimezone": 300,
  "clientMetadata": {
    "var1": "val1",
    "var2": "val2",
    "var3": "val3"
  },
  "returnAnswerAsync": true
}


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

Поле

Тип

Обязательно

Описание

name

string

Да

Имя сессии

botId

string

Нет


sessionId

string

Нет

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

sessionTtl

integer

Нет

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

messengerType

string

Нет

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

messengerUserId

string

Нет


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

 

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

Поле

Тип

Обязательно

Описание

id
stringДа  Идентификатор чат-сессии.
clientId 
string

startedAt
string

ttl
integer

messages
array of objects

| body
string

| answers
array of strings

| actions
array of objects

| attachments
array of objects

| | id
string

| | isPrivate
boolean

| | createdAt
string

| | name
string

| | baseName
string

| | extension
string

| | sugestedExtension
string

| | path
string

| | size
int64

| | url
string

| | downloadLink
string


В успешном ответе содержится идентификатор чат-сессии. Именно этот параметр будет в дальнейшем использоваться для отправки сообщения в чат-сессию и подключения socket.io для "прослушивания" событий в данной чат-сессии.

...

Блок кода
languagepy
firstline1
titleОтвет в формате JSON
linenumberstrue
[
    {
        "id": "c419011c-a998-4189-b897-e82117e6a803",
        "isPrivate": true,
        "createdAt": "2023-06-26T15:44:32+00:00",
        "contentType": "image\/png",
        "name": "for_test.png",
        "baseName": "for_test",
        "extension": "png",
        "suggestedExtension": "png",
        "path": "",
        "size": 18463,
        "url": "https:\/\/tcl.twin24.ai\/s3\/twin-chat-prod\/private\/2023-06-26\/c419011c-a998-4189-b897-e82117e6a803?response-content-type=image%2Fpng&response-content-disposition=inline%3B%20filename%3Dfor_test.png&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20230626%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230626T154432Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=a135aa83042d8ae5b36b46c65ed04199432e1610d82bd44dbe3c9951c8639fb6",
        "downloadLink": "https:\/\/tcl.twin24.ai\/s3\/twin-chat-prod\/private\/2023-06-26\/c419011c-a998-4189-b897-e82117e6a803?response-content-type=image%2Fpng&response-content-disposition=attachment%3B%20filename%3Dfor_test.png&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=minio%2F20230626%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20230626T154432Z&X-Amz-SignedHeaders=host&X-Amz-Expires=3600&X-Amz-Signature=4fd7e5aa634d057612d0cb4d6d72f3b301f174ed4345722c414378c222a1c4bdstring",
        "downloadLink": "string",
        "ownerId": null
    }
]


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

Поле

Тип

Обязательно

Описание

id

Да Идентификатор файла
isPrivate



name
Полное имя файла (с расширением)
baseName
Имя файла
extension
Расширение файлаsuggestedExtensionpathsizeРазмер файла в байтахurldownloadLink
ownerId
ID владельца

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

Метод: POST

Authorization: No Auth 

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

Тело запроса

...

languagepy
firstline1
titleТело запроса в формате Json:
linenumberstrue

...

string
Полное имя файла (с расширением)
baseName
string
Имя файла
extension
string
Расширение файла
suggestedExtensionstring

pathstring

sizeint64
Размер файла в байтах
urlstring

downloadLinkstring

ownerId
string
ID владельца


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


...

Подключение к сокетам

Информация
titleО библиотеки socket.io

Socket.IO - это библиотека для создания приложений, работающих в режиме реального времени, имеющих двунаправленный канал связи и основанных на событиях. Более подробно ознакомиться с библиотекой можно на сайте официальной документации.

...