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

Сообщения и файлы

sendMessage

iOS 2.0Android 2.0Web 2.0

Метод отправки сообщения в персональный или групповой чат.

Аргументы

Аргументом метода является объект, содержащий следующие параметры:

Идентификатор получателя

Необходимо заполнить только поле userHuid или поле groupChatId, чтобы клиент "eXpress" корректно определил получателя.

Параметр Тип данных Описание
userHuid string HUID пользователя
groupChatId string Идентификатор чата
messageBody string Текст сообщения
messageMeta object Метаданные сообщения. Заполняется, если требуется отобразить превью ссылки в сообщении (опционально)
  - url string URL ссылки
  - urlPreview string URL изображения (опционально)
  - urlPreviewWidth number Ширина изображения при наличии urlPreview
  - urlPreviewHeight number Высота изображения при наличии urlPreview
  - urlTitle string Заголовок
  - urlText string Описание (опционально)

Возвращаемое значение

Возвращаемое значение содержит Promise, который будет исполнен.

Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import * as SDK from "@expressms/smartapp-sdk";

async function test() {
  try {

    // Отправка в групповой чат
    await SDK.sendMessage({
      userHuid: null,
      groupChatId: "57b6d379-91ed-5cf0-bfd8-7942ab91b434",
      messageBody: "Посмотрите документацию https://play.google.com/store/apps/details?id=ru.mvd.chat",
      messageMeta: {
        url: "https://play.google.com/store/apps/details?id=ru.mvd.chat",
        urlPreview: "https://play-lh.googleusercontent.com/DZ0p57wSCpwmWW-ff4M6yr2jQMYdKaWXax5yAItJ8KEc2GTYgZZyF_1tyz6bgAXPggMF",
        urlTitle: "СОМ - Apps on Google Play",
        urlText: "COM - universal communication platform",
        urlPreviewWidth: 512,
        urlPreviewHeight: 512,
      },
    });

    // Отправка в персональный чат
    await SDK.sendMessage({
      userHuid: "d2ecb86c-54d5-4e7d-b064-349bf1da68e2",
      groupChatId: null,
      messageBody: "Посмотрел документацию?",
      messageMeta: null,
    });
  } catch(error) {
    console.log(error);
  }
}

sendBotCommand

iOS 2.25Android 2.23Web 2.8

Специализированный метод отправки сообщения в чат с ботом. Отличие от sendMessage заключается в том, что есть возможность отправить метаданные видимые только боту.

Аргументы

Аргументом метода является объект, содержащий параметры:

Параметр Тип данных Описание
userHuid string HUID бота
body string Текст сообщения
data object Метаданные, видимые только боту (опционально)
  - command string Текст команды

Возвращаемое значение

Возвращаемое значение содержит Promise, который будет исполнен.

Пример:

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

async function test() {
  try {
    await SDK.sendBotCommand({
      userHuid: "57b6d379-91ed-5cf0-bfd8-7942ab91b434",
      body: "Тестовое сообщение",
      data: {
        command: "/stop",
      },
    });
  } catch(error) {
    console.log(error);
  }
}

openFile

iOS 2.1Android 2.1Web 2.1

Метод открытия и скачивания файла.

Аргументы

Аргументом метода является объект, содержащий параметры:

Параметр Тип данных Описание
type string Тип файла
file string URL файла в сервисе file_service
fileMimeType string MIME-тип файла
fileName object Наименование файла
fileSize object Размер файла
fileHash object Хеш-сумма
fileEncryptionAlgo object Алгоритм шифрования
chunkSize object Размер чанка
filePreview object Превью, только для файлов изображений (опционально)
filePreviewHeight object Высота в пикселях, только для файлов изображений (опционально)
filePreviewWidth object Ширина в пикселях, только для файлов изображений (опционально)

Свойства

Чат-бот запрашивает файл с параметрами методом upload и доставляет их на SmartApp frontend. На клиенте полученные данные загружаются методом uploadFile. Особенности работы с файлами описаны в статье "Работа с файлами".

Возвращаемое значение

Возвращаемое значение содержит Promise, который будет исполнен.

Пример:

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

async function test() {
  try {
    await SDK.sendBotCommand({
      userHuid: "57b6d379-91ed-5cf0-bfd8-7942ab91b434",
      body: "Тестовое сообщение",
      data: {
        command: "/stop",
      },
    });
  } catch(error) {
    console.log(error);
  }
}

uploadFile

iOS 2.1Android 2.1Web 2.1

Метод отправки файла.

Примечание

Специализированного метода для отправки файла в SDK нет. На данный момент указанный метод реализован на уровне Bridge.

Аргументы

Аргументом метода является объект, содержащий параметр:

Параметр Тип данных Описание
type string Mime тип файла

Возвращаемое значение

Возвращаемое значение содержит Promise, который после исполнения вернет объект record с атрибутом payload. Объект содержит следующие свойства:

Свойство Тип данных Описание
type string Тип файла
file string URL файла в сервисе file_service
fileMimeType string Mime тип файла
fileName object Наименование файла
fileSize object Размер файла
fileHash object Хеш сумма
fileEncryptionAlgo object Алгоритм шифрования
chunkSize object Размер чанка
filePreview object Превью, только для файлов изображений (опционально)
filePreviewHeight object Высота в пикселях, только для файлов изображений (опционально)
filePreviewWidth object Ширина в пикселях, только для файлов изображений (опционально)

Пример:

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

async function test() {
  try {
    const { payload } = await SDK.Bridge.sendClientEvent({
      method: ClientEventMethod.UPLOAD_FILE,
      params: {
        type: '',
      },
    }));

    console.log("File =", JSON.stringify(payload.record));
  } catch(error) {
    console.log(error);
  }
}

uploadFiles

iOS 2.1Android 2.1Web 2.1

Метод отправки нескольких файлов.

Примечание

Специализированного метода для отправки файлов в SDK нет. На данный момент указанный метод реализован на уровне Bridge.

Аргументы

Аргументы метода аналогичны uploadFile.

Возвращаемое значение

Результат работы метода аналогичен uploadFile. Отличие от uploadFile в том, что вместо объекта record вернется список records с теми же свойствами.