Перейти к содержанию

Меню "Отправить в"

Настройка меню "Отправить в"

Текстовые сообщения из чата/канала можно передавать на обработку в SmartApp.

После того, как данная настройка будет завершена, в меню "Отправить в" клиента отобразится заданный пункт. При нажатии на него в соответствующем SmartApp будет создано заданное событие:

Рисунок_1

Для настройки списка действий в консоли администратора сервера CTS:

  1. Перейдите в раздел "Боты" и нажмите пиктограма в строке соответствующего чат-бота.
  2. В блоке "Отправить в" нажмите на кнопкупиктограма:

    Рисунок_2

  3. Заполните поля:

    Поле Значение
    Название пункта Название пункта пункта меню
    Событие Событие, которое будет создано в SmartApp
    Icon Ссылка на иконку, которая будет отображаться в названии пункта меню
  4. Нажмите Сохранить.

Получение данных пункта меню в SmartApp

Когда пользователь в меню клиента Отправить в нажмет на указанный пункт, введенное в поле Событие значение будет передано SmartApp frontend в ответ на событие ready.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import * as SDK from "@expressms/smartapp-sdk";


function sendMail(sender, message) {
  console.log("sender", sender);
  console.log("message", message);
}

async function initApp() {
  const readyResponse = await SDK.ready();

  // проверка что данные поступают по клику меню "Отправить в"
  if (readyResponse.initialData?.initiator == "menu_action") {
    const { action, sender, message } = readyResponse.initialData.meta;

    // В поле action находится значение, введенное при редактировании бота в административной панели CTS
    if (action == "send-mail") {
        sendMail(sender, message);
    }
  }
}

В результате выполнения примера выше в консоли браузера будет выведено:

sender <object>{
 "userHuid": "d50aa5c6-2ba6-5a3a-be3f-044f48d5897a",
 "name": "Ivan Kudinov",
 "avatar": "https://cts.ccsteam.ru/uploads/profile_avatar/b9f3ce3b-b753-4c55-b967-c954db734d5c/578402fac5cd4e679b9b05a550954f91.jpg?v=1689246524204",
 "avatarPreview": "https://cts.ccsteam.ru/uploads/profile_avatar/b9f3ce3b-b753-4c55-b967-c954db734d5c/59d1740e75284077be5e5c6118a9692c.jpg?v=1689246524204",
 "company": "Express, Unlimited Production",
 "companyPosition": "Dev Lead",
 "email": null,
}

message <object>{
  "body": "Спешу пригласить Вас на свой день рождения. Этот праздник мне хотелось бы отметить в кругу дорогих мне людей, в атмосфере любви, радости и веселья. И Вы, несомненно, сделаете этот день ярче и прекраснее. Искренне надеюсь на встречу и жду вас по адресу Ступоченко, 13-74 в 18:00 01.05.2024.
16:34",
  "timestamp": 1689591352159,
  "mentions": [],
}

Свойства объекта initialData.meta.sender:

Параметр Тип данных Описание
userHuid string Huid пользователя, отправившего сообщение, в канале — null
name string Имя отправителя, в канале — имя канала
avatar string URL аватара отправителя
avatarPreview string URL превью аватара отправителя
company string Поле company профиля пользователя, в канале — null
companyPosition string Поле companyPosition профиля пользователя, в канале — null
email string Адрес электронной почты пользователя, в канале — null

Свойства объекта initialData.meta.message:

Параметр Тип данных Описание
body string Текст сообщения; если текст содержит упоминание другого пользователя, то в тексте будет сроки вида @{mention:44bd21c9-5107-5a1f-b1c2-9da431806d84}
timestamp number Unix timеstamp даты отправки сообщения
mentions list Список упоминаний пользователей в сообщении

Пример mentions:

[{
  "mentionType": "user",
  "mentionId": "44bd21c9-5107-5a1f-b1c2-9da431806d84",
  "mentionData": {
    "connType": "cts",
    "userHuid": "8d6fe4a3-1f1f-572e-b46f-e79bd2c2e8df",
    "name": "Ivan Ivanov"
}]