...
Для примера интеграции мы рассмотрим простую программу. Суть и логика программы: запускается эхо-бот, который повторяет введенное в терминале пользователем сообщение. Завершение эхо-чата происходит по ключевому слову "стоп".
...
| Блок кода | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
{
"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
| Блок кода | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
{
"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 для "прослушивания" событий в данной чат-сессии.
...
| Блок кода | ||||||||
|---|---|---|---|---|---|---|---|---|
| ||||||||
[
{
"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 |
baseNameextensionownerIdДалее, для отправки сообщения используется метод отправки сообщения в чат сессию (описан в начале текущего раздела). Важно, при отправке сообщения в котором прикреплён файл, указать в параметрах запроса идентификатор файла.
Метод: POST
Authorization: No Auth
URL: https://tcl.twin24.ai/api/chats/v1/sessions/{session_id}/clients/messages?x_widget=1
Тело запроса
...
| language | py |
|---|---|
| firstline | 1 |
| title | Тело запроса в формате Json: |
| linenumbers | true |
...
| string | Полное имя файла (с расширением) | ||
baseName | string | Имя файла | |
extension | string | Расширение файла | |
| suggestedExtension | string | ||
| path | string | ||
| size | int64 | Размер файла в байтах | |
| url | string | ||
| downloadLink | string | ||
ownerId | string | ID владельца |
Далее, для отправки сообщения используется метод отправки сообщения в чат сессию (описан в начале текущего раздела). Важно, при отправке сообщения в котором прикреплён файл, указать в параметрах запроса attachments идентификатор файла.
...
Подключение к сокетам
| Информация | ||
|---|---|---|
| ||
Socket.IO - это библиотека для создания приложений, работающих в режиме реального времени, имеющих двунаправленный канал связи и основанных на событиях. Более подробно ознакомиться с библиотекой можно на сайте официальной документации. |
...