# Работа с опросами
На каждый уведомление (запрос) сервера клиент должен ответить так:
{
"type": 2,
"id": 123456
}
После отправки ответа сообщение от пользователя будет считаться прочитанным ботом и будет отмечено соответствующей галочкой в клиентском приложении TrueConf.
# Запросы клиента
# Отправить опрос
Позволяет отправить уже созданный ранее опрос в чат. Опрос должен быть предварительно создан одним из следующих способов:
- через личный кабинет TrueConf Server;
- в клиентском приложении Труконф;
- с помощью API v4 доступного TrueConf Server версии 5.5.0.
Запрос:
{
"type": 1,
"id": 5,
"method": "sendSurvey",
"payload": {
"chatId": "5abba630dd1089090ba41c69c7aa34e4ba277a43",
"replyMessageId": "267d61f2-2ba1-4e88-83ab-bb84415f31b6",
"content": {
"url": "https://server.url/webtools/survey",
"appVersion": 1,
"path": "employee_testing",
"title": "Employee survey",
"description": "{{Survey}}",
"buttonText": "{{Go to survey}}",
"secret": "25690753a489f037af09b5cbce417b41374807fe",
"alt": "📊 <a href='https://server.url/webtools/survey?id=employee_testing&error=autologin_not_supported'>Employee survey</a>"
}
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да |
Тип сообщения (по умолчанию 1 ). Соответствует
MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут. |
method | string | Да | Команда sendSurvey |
chatId | string | Да | Идентификатор чата для отправки опроса |
replyMessageId | string | Нет | Идентификатор сообщения, если это ответ |
url | string | Да |
Строковый URL опросов на сервере, имеет вид
https://server.name/webtools/survey |
appVersion | number | Да | Версия опросов на сервере |
path | string | Да | Идентификатор кампании опроса |
title | string | Да | Название опроса |
description | string | Да |
Тип опроса — анонимный или не анонимный. Всегда содержит строку
\{\{Anonymous survey\}\} либо \{\{Survey\}\} |
buttonText | string | Да |
Текст, отображаемый на кнопке перехода к опросу.
Всегда содержит строку \{\{Go to survey\}\} |
secret | string | Да | Случайная строка из тела сообщения. Должен быть сформирован как SHA1-хэш от конкатенации названия опроса и произвольной строки. |
alt | string | Да |
Альтернативная ссылка для перехода к опросу. Имеет вид:
📊 <a href="<url>?id=<path>"><title></a> ,
где вместо <url> , <path> и <title>
подставляются соответствующие значения.
|
Ответ:
{
"type": 2,
"id": 5,
"payload": {
"timestamp": 1750168761373,
"messageId": "f8865b5c-877c-4a55-b175-a667ebf5f007",
"chatId": "5abba630dd1089090ba41c69c7aa34e4ba277a43"
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да |
Тип сообщения (по умолчанию 2 ). Соответствует
MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
chatId | string | Да | Идентификатор чата, в который отправилось сообщение |
messageId | string | Да | Идентификатор сообщения. Можно использовать данный идентификатор в дальнейшем для изменения, пересылки или удаления сообщения |
timestamp | uint64 | Да | Временная метка отправки сообщения в формате UNIX timestamp с точностью до миллисекунд |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode
. Список возможных значений доступен в соответствующем разделе документации.
# Изменить опрос
Запрос:
{
"type": 1,
"id": 1,
"method": "editSurvey",
"payload": {
"messageId": "f8865b5c-877c-4a55-b175-a667ebf5f007",
"content": {
"path": "employee_testing_marketing",
"title": "Employee survey отдела Маркетинга",
"description": "{{Survey}}",
"buttonText": "{{Go to survey}}",
"alt": "📊 <a href='https://server.url/webtools/survey?id=employee_testing&error=autologin_not_supported'><title></a>"
}
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да |
Тип сообщения (по умолчанию 1 ). Соответствует
MESSAGE_TYPE.REQUEST |
id | uint32 | Да | Уникальный идентификатор запроса. Инкрементируемое значение, назначаемое отправляющей стороной, обязательное в каждом запросе для последующего связывания с ответом. Подробнее читайте тут |
method | string | Да | Команда editSurvey |
messageId | string | Да | Идентификатор сообщения с опросом |
path | string | Да | Идентификатор кампании опроса |
title | string | Да | Название опроса |
description | string | Да |
Тип опроса — анонимный или не анонимный. Всегда содержит строку
\{\{Anonymous survey\}\} либо \{\{Survey\}\} |
buttonText | string | Да |
Текст, который будет отображен на кнопке перехода к опросу.
Всегда содержит строку \{\{Go to survey\}\} |
alt | string | Да |
Альтернативная ссылка для перехода к опросу.
Имеет вид:
📊 <a href="<url>?id=<path>"><title></a> ,
где вместо <url> , <path> и <title>
подставляются соответствующие значения.
|
Ответ:
{
"type": 2,
"id": 1,
"payload": {
"messageId": "f8865b5c-877c-4a55-b175-a667ebf5f007",
"timestamp": 1735314170572
}
}
Параметр | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да |
Тип сообщения (по умолчанию 2 ). Соответствует
MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор, совпадающий с числом, отправленным в исходном запросе, используемый для связывания запроса и ответа |
messageId | string | Да | Идентификатор отредактированного сообщения |
timestamp | uint64 | Да | Временная метка редактирования сообщения в формате UNIX timestamp с точностью до миллисекунд |
В случае возникновения ошибки возвращается сообщение, содержащее параметр errorCode
. Список возможных значений доступен в соответствующем разделе документации.
# Уведомление сервера
# Новый опрос
При отправке нового опроса в чат клиент получит соответствующее уведомление от сервера.
Сообщение от сервера:
{
"method": "sendMessage",
"type": 1,
"id": 11,
"payload": {
"chatId": "bd05af54347e04a1c44e70033d35834d4428bb5d",
"messageId": "d66254de-9d89-4130-8027-c5378f042800",
"timestamp": 1746029007569,
"author": {
"id": "brown@video.example.com",
"type": 1
},
"isEdited": false,
"box": {
"id": 4,
"position": "0"
},
"type": 204,
"content": {
"url": "<tool_url>?id=...&k=...&mode=popup&call_id=vasya@srv.trueconf.name/1vca3&lang=ru&version=1&app=TrueConf+WebClient&dn=Vasiliy&s=12fee56062786c267cc286045f1fac76",
"appVersion": 1,
"path": "some_survey",
"title": "Meeting survey",
"description": "{{Survey}}",
"buttonText": "{{Go to survey}}",
"secret": "054c1cf18f1e64f4c38b256effedfe18debdcbba",
"alt": "📊 <a href='https://server.url/webtools/survey?id=some_survey&error=autologin_not_supported'>Meeting survey</a>"
}
}
}
Уведомление о сообщении с опросом содержит поля, соответствующие объектам Envelope и. Подробное описание этих полей вы найдёте в разделе посвящённом работе с сообщениями и опросами.
Ответ от клиента:
{
"type": 2,
"id": 123456
}
Поле | Тип | Обяз. | Описание |
---|---|---|---|
type | uint32 | Да | Тип сообщения (по умолчанию 2 ). Соответствует MESSAGE_TYPE.RESPONSE |
id | uint32 | Да | Идентификатор сообщения, на которое дается ответ (см. подробнее) |