Користувальницькькі налаштування

Налаштування сайту


ubillingtelegram

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
Остання ревізія По сторонах наступні версії
ubillingtelegram [2020/01/17 11:50]
ubillingtelegram [2022/09/24 14:39]
127.0.0.1 зовнішнє редагування
Рядок 1: Рядок 1:
 +====== API UbillingTelegram ======
  
 +Ubilling предоставляет удобную модель абстракции, для работы с сообщениями [[https://core.telegram.org/api|бота Telegram]]. Начиная со стабильного релиза Ubilling 0.8.0 вы можете использовать базовый класс UbillingTelegram для посылки, приема и чтения сообщений принятых ботом. Для посылки сообщений требуется токен заранее [[https://tlgrm.ru/docs/bots|созданного бота]] и включенная и настроенная подсистема [[senddog|собаки-посылаки]]. Да, вы можете пригласить бота в свою закрытую групку либо куда пожелаете.
 +
 +API базового класса UbillingTelegram пытается повторять работу [[ubillingsms|UbillingSMS]] и быть максимально простым для понимания. Также вы можете одновременно работать с несколькими ботами, создав для каждого из них по экземпляру класса, либо на-ходу переключая их токены. Рассмотрим работу с ботом на простом примере:
 +
 +<code php>
 +$botToken = '123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11';
 +// мы можем передавать токен нашего бота либо в конструкторе класса
 +$telegram = new UbillingTelegram($botToken);
 +// либо принудительно выставить при помощи публичного метода setToken, например так:
 +$telegram->setToken($botToken);
 +// мы можем получить список контактов, ранее писавших боту либо в чаты в которые он приглашен
 +$botContacts = $telegram->getBotContacts();
 +debarr($botContacts);
 +
 +// Также мы можем поместить сообщение в очередь для дальнейшей посылки собакой-посылакой для одного из этих chatid.
 +// Рекомендуется использовать этот метод в ваших модулях.
 +$chatId = '-1001070840004';
 +$telegram->sendMessage($chatId, 'это тестовое сообщение', false, 'SAMPLEMODULE');
 +
 +// Далее, если потребуется мы можем работать с очередью сообщений.
 +// например получить количество сообщений ожидающих отправки
 +$queueCount=$telegram->getQueueCount();
 +deb($queueCount);
 +
 +//или содержимое этой очереди в виде массива
 +$queueData=$telegram->getQueueData();
 +debarr($queueData);
 +
 +//также нам никто не запрещает почитать какие же приватные или сообщения канала получал бот:
 +$botChats=$telegram->getBotChats();
 +debarr($botChats);
 +
 +// Если нам требуется отправка сообщения от имени бота отличного от настроенного в собаке-посылаке,
 +// мы можем принудительно инициализировать посылку сообщения в обход очереди при помощи публичного метода "прямо щас"
 +$telegram->directPushMessage($chatId, 'это тоже тестовое сообщение посланное напрямую');
 +</code>
 +
 +
 +Также в Ubilling 1.0.2 появилась возможность включить режим отладки, чтобы видеть запросы и ответы на них от сервера API:
 +<code php>
 +$telegram->setDebug(true);
 +</code>
 +
 +
 +А также отсылать данные о местонахождении контактам вашего бота. Пример:
 +<code php>
 +$testText = 'sendLocation:50.45093260638449, 30.52267174950622'; // да, формат сообщения "sendLocation:координаты"
 +$telegram->sendMessage($chatid, $testText);
 +</code>
 +
 +А можно не просто данные о местонахождении, а также с заголовком и адресом:
 +<code php>
 +$message='title:{Налаштувати роутер}address:(Де бабайко каже надобраніч)sendVenue:[50.45093260638449, 30.52267174950622]';
 +$telegram->directPushMessage($chatid, $message);
 +</code>
 +
 +Да, все поля и формат скобочек строго обязательны.
 +
 +А еще начиная с Ubilling 1.0.5 можно устанавливать кастомную разметку для ваших сообщений. Например использовать HTML. Например так:
 +<code php>
 + $message='Просто текст <b>жирный текст</b> <a href="http://ubilling.net.ua">Ссылка на сайт</a> parseMode:{html}';
 + $telegram->directPushMessage($chatid, $message);
 +</code>
 +
 +Начиная с Ubilling 1.0.9 также поддерживается посылка фоточек контактам бота. Формат посылки фоточек следующий:
 +<code php>
 +$message = 'sendPhoto:[http://piclod.com/i/1592634849/CEYG67MWEAEsvwa.jpeg]{Это опциональный заголовок}';
 +
 +$telegram->sendMessage($chatId, $message);
 +</code>
 +
 +Начиная с Ubilling 1.1.4 вы можете использовать для ваших ботов кастомные клавиатуры. Для этого клавиатура собранная из массива при помощи **makeKeyboard** тупо отсылается при помощи **directPushMessage**. Как-то так:
 +<code php>
 +        $buttonsArray[] = array('кнопка раз', 'кнопка рядом');
 +        $buttonsArray[] = array('кнопка внизу');
 +        
 +        $keyboard = $telegram->makeKeyboard($buttonsArray, false, true, true);
 +        $telegram->directPushMessage($chatid, 'Здесь клавиатура вылезла!', $keyboard);
 +</code> 
 +
 +Принудительно ее убить можно в свою очередь, используя сообщение, содержащее текст вида "removeKeyboard:тут текст сообщения"
 +
 +<code php>
 + $telegram->directPushMessage($chatid, 'removeKeyboard:ой всё');
 +</code> 
ubillingtelegram.txt · Востаннє змінено: 2023/06/16 17:49 повз skybetik