← К каталогу
Исходный код · ID 2418

telegram.mqh

Вы автор или правообладатель?

Сообщите нам, если считаете, что материал размещён без разрешения.

Краткий обзор

О программе

Данный исходный файл представляет собой библиотеку для языка MQL, предназначенную для взаимодействия торгового терминала с сервисом Telegram. Библиотека инкапсулирует работу с HTTP-запросами к сервису и предоставляет удобные классы для отправки сообщений, фотографий и уведомлений о действиях, а также для приёма и разбора входящих обновлений.

Основу составляют три класса. Класс сообщения хранит данные одного входящего сообщения: идентификаторы, сведения об отправителе и чате, дату и текст. Класс чата описывает отдельный диалог с его последним и новым сообщением, состоянием и временем. Класс бота объединяет работу с токеном, именем бота, списком чатов и фильтром пользователей, а также содержит методы отправки и приёма данных.

Библиотека позволяет задать токен бота, получить сведения о боте, запросить новые обновления, отправить текстовое сообщение в чат или канал, отправить фотографию по идентификатору или загрузить локальный файл изображения, а также отправить уведомление о текущем действии. Дополнительно предусмотрены вспомогательные методы для формирования разметки клавиатуры и преобразования действий чата в строку.

Для работы с сетью используется стандартный механизм HTTP-запросов терминала, а для разбора ответов применяется разбор JSON. Библиотека не содержит торговой логики и не выполняет торговых операций: её назначение — обеспечить обмен данными между программой на MQL и сервисом Telegram.

Состав библиотеки

Классов: 3 · методов: 16 · конструкторов: 2 · деструкторов: 0 · отдельных функций: 1

Классы
Класс class CCustomMessage

Класс-контейнер, описывающий одно сообщение Telegram: хранит идентификаторы обновления и сообщения, данные отправителя и чата, дату и текст сообщения.

Класс class CCustomChat

Класс-контейнер, описывающий отдельный чат: идентификатор чата, последнее и новое сообщение, состояние и время.

Класс class CCustomBot

Класс для работы с ботом Telegram: хранит токен, имя бота, список чатов и фильтр пользователей, а также предоставляет методы отправки и приёма сообщений.

Функции
Функция string ChatActionToString(const ENUM_CHAT_ACTION _action)

Преобразует значение перечисления действия чата в строку, используемую при отправке уведомлений.

Методы и конструкторы
Конструктор · CCustomMessage CCustomMessage()

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

Конструктор · CCustomBot void CCustomBot()

Конструктор бота, сбрасывающий токен, имя, счётчик обновлений, список чатов и фильтр пользователей.

Метод · CCustomBot int ChatsTotal()

Возвращает общее количество чатов, сохранённых в списке бота.

Метод · CCustomBot int Token(const string _token)

Устанавливает токен бота после удаления лишних пробелов; возвращает код ошибки, если токен пуст.

Метод · CCustomBot void UserNameFilter(const string username_list)

Задаёт список имён пользователей для фильтрации входящих сообщений; поддерживает разделители и символ @.

Метод · CCustomBot string Name()

Возвращает имя бота, полученное ранее от сервиса.

Метод · CCustomBot int GetMe()

Запрашивает у сервиса сведения о боте и сохраняет его имя; возвращает код результата.

Метод · CCustomBot int GetUpdates()

Запрашивает у сервиса новые обновления, разбирает их и обновляет список чатов бота; возвращает код результата.

Метод · CCustomBot int SendChatAction(const long _chat_id, const ENUM_CHAT_ACTION _action)

Отправляет в указанный чат уведомление о действии, например о наборе текста или отправке файла.

Метод · CCustomBot int SendPhoto(const long _chat_id, const string _photo_id, const string _caption)

Отправляет фотографию в чат по её идентификатору с необязательной подписью.

Метод · CCustomBot int SendPhoto(string &_photo_id, const string _channel_name, const string _local_path, const string _caption, const bool _common_flag, const int _timeout)

Загружает локальный файл изображения и отправляет его в указанный канал; возвращает идентификатор загруженной фотографии.

Метод · CCustomBot int SendPhoto(string &_photo_id, const long _chat_id, const string _local_path, const string _caption, const bool _common_flag, const int _timeout)

Загружает локальный файл изображения и отправляет его в указанный чат; возвращает идентификатор загруженной фотографии.

Метод · CCustomBot void ProcessMessages(void)

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

Метод · CCustomBot int SendMessage(const long _chat_id, const string _text, const string _reply_markup, const bool _as_HTML, const bool _silently)

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

Метод · CCustomBot int SendMessage(const string _channel_name, const string _text, const bool _as_HTML, const bool _silently)

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

Метод · CCustomBot string ReplyKeyboardMarkup(const string keyboard, const bool resize, const bool one_time)

Формирует строку разметки для пользовательской клавиатуры с настройками изменения размера и одноразового показа.

Метод · CCustomBot string ReplyKeyboardHide()

Формирует строку разметки для скрытия пользовательской клавиатуры.

Метод · CCustomBot string ForceReply()

Формирует строку разметки для принудительного ответа на сообщение.

Получить полный код

Поиск по коду файла

********

Показано первые 50% кода (символов: 53595)

Открыть по тарифу

Купите тариф с пакетом открытий или войдите, если тариф уже есть. Открытый файл останется в вашем кабинете навсегда.

Разовая покупка файла

На этой странице откроется полный исходный код файла вместо ознакомительного фрагмента.

Чтобы оформить заказ, введите email и перейдите к оплате.

Стоимость полного кода
5 359,50₽ ≈ $65.50