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

Взаимодействие с ботом

sendBotEvent

iOS 2.0Android 3.0Web 2.0

Метод отправки события боту. Это основной способ обмена данными между SmartApp frontend и backend.

Параметром запроса является объект с атрибутами.

Параметры

Параметр Тип данных Описание
method string Метод запроса, который получит бот
params object Полезные данные запроса, которые получит бот
files array Необязательный список файлов. Атрибуты файлов формируются при отправке их на сервер методом uploadFile
timeout number Необязательный таймаут в мс, по умолчанию 3000
guaranteed_delivery_required bool Необязательный признак гарантированной доставки боту, по умолчанию false. Этот параметр позволяет доставить сообщение боту при выходе из оффлайна, даже если SmartApp уже выгружен

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

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

Параметр Тип данных Описание
ref string Уникальный идентификатор запроса
payload object Полезные данные ответа, формируемые ботом
type string Константа со значением smartapp_rpc
files array Список файлов, которые заружаются методом openFile

Пример:

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

async function test() {
  const response = await SDK.Bridge.sendBotEvent({
    method: "get_news",
    params: {
      id: 1248,
    },
  });

  // Допустим по соглашению с ботом в payload ответа 
  // приходит status "success"|"error" и поле news в случае успеха

  if (response.payload.status == "success") {
    console.log(response.payload.news);
  } else {
    console.error(response.payload);
  }
}


onNotification

iOS 2.0Android 2.0Web 2.0

Метод асинхронного уведомления от бота. Данный метод полезен, если требуется отправить событие с бота не в ответ на запрос с клиента, а в произвольный момент времени. Например, когда завершилась длительная операция.

Параметры

Параметр Тип данных Описание
callback function Функция, вызываемая при поступлении сообщения от бота.
В функцию будет передан объект полученного события

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

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

Пример:

1
2
3
4
5
6
7
8
9
import * as SDK from "@expressms/smartapp-sdk";

function handleNotification(event) {
  // TODO: обработать event.payload
}

async function test() {
  const response = await SDK.onNotification(handleNotification);
}

sendBotCommand

iOS 2.25Android 2.23Web 2.8

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

Параметром запроса является объект с атрибутами.

Параметры

Параметр Тип данных Описание
user_huid string ID бота, которому будет отправлено сообщение
body string Видимый текст сообщения
data object Метаданные, которые увидит только бот

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

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

Пример:

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

async function test() {
  await SDK.sendBotCommand({
    user_huid: "31909635-3499-4163-90f4-55f7336816e2",
    body: "привет, бот!",
    data: {
      id: 1248,
    },
  });
}