Описание структур Telegram

Все сообщения и данные о взаимодействии с Telegram-ботами хранятся в системных структурах платформы

  • TMessageIn: все входящие сообщения;

  • TMessageOut: все отправленные пользователю сообщения;

  • TChat: чаты с пользователями;

  • TUser: список пользователей, когда-либо взаимодействовавших с ботом;

  • TKeyboard: клавиатуры. Когда предусмотрено несколько вариантов ответа на вопрос бота, уместно их показывать в виде пользовательской клавиатуры, например в опросах.

Разберём каждую структуру по отдельности.

TMessageIn

key: уникальный ключ пришедшего сообщения; messageId: уникальный ID сообщения пришедший от телеграма; userId: ключ userID со стороны телеграма, от которого пришло сообщение; botId: ID бота в платформе; botName: имя бота в нашей системе; fromId: userID отправителя; date: дата получения сообщения; chatKey: уникальный ключ чата, по которому можно ответить в именно в этот чат; text: текст сообщения от пользователя; longitude: долгота, используется в случае отправки геолокации; latitude: широта, используется в случае отправки геолокации; fileUrl: ссылка, в случае отправки файла.

TUser

Id: ID объекта в структуре; botId: ID бота; botName: имя бота; firstName: имя пользователя; lastName: фамилия пользователя; userName: никнейм пользователя; lastChatKey: ключ последнего последнего активного чата с пользователем; lastMessageKey: ключ последнего пришедшего сообщения от пользователя;

TChat

Id: ID чата (выдаётся Telegram); botId: ID бота в платформе; botName: имя бота в платформе; type : тип чата, может быть private/channel/group; title: заголовок чата, если это группа или канал; firstName: задаётся имя пользователя в случае, если тип чата private; lastName: задаётся фамилия пользователя в случае, если тип чата private; userName: задаётся никнейм пользователя в случае, если тип чата private; lastMessageKey: ссылка на последнее сообщение в структуре TMessageIn; context: контекст чата. Искусственная переменная для работы с платформой, если мы хотим держать какой то контекст в чате.

TKeyboard

id: ID клавиатуры; keyboard: значения "клавиатуры". Пример "yes,no".

TMessageOut

key: ID сообщения в платформе; chatKey: уникальный ключ чата; botId: ID бота в платформе; botName: имя бота; keyboardId: ID клавиатуры. Используется в случае, если ответ от бота должен прийти в виде клавиатуры; date: дата отправки сообщения; text: текст сообщения; layoutText: не используется в современной версии платформы.