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

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


Сайдбар

Розділи

Загальний опис
Історія змін
Рекомендації до оновлення
Плани на майбутнє
Відомі проблеми
Онлайн демо
Відео
Допомога проекту
Люди
Трохи про безпеку

FAQ



Редагувати сайдбар

ubillingtelegram

API UbillingTelegram

Ubilling надає зручну модель абстракції, для роботи з повідомленнями бота Telegram. Починаючи зі стабільного релізу Ubilling 0.8.0 ви можете використовувати базовий клас UbillingTelegram для надсилання, приймання та читання повідомлень, прийнятих ботом. Для надсилання повідомлень потрібен токен заздалегідь створеного бота і ввімкнена та налаштована підсистема собаки-посилаки. Так, ви можете запросити бота у свою закриту групку або куди забажаєте.

API базового класу UbillingTelegram намагається повторювати роботу UbillingSMS і бути максимально простим для розуміння. Також ви можете одночасно працювати з кількома ботами, створивши для кожного з них по екземпляру класу, або на-ходу перемикаючи їхні токени. Розглянемо роботу з ботом на простому прикладі:

$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, 'это тоже тестовое сообщение посланное напрямую');

Також в Ubilling 1.0.2 з'явилася можливість увімкнути режим налагодження, щоб бачити запити і відповіді на них від сервера API:

$telegram->setDebug(true);

А також відсилати дані про місцезнаходження контактам вашого бота. Приклад:

$testText = 'sendLocation:50.45093260638449, 30.52267174950622'; // так, формат повідомлення "sendLocation:координати"
$telegram->sendMessage($chatid, $testText);

А можна не просто дані про місцезнаходження, а також із заголовком і адресою:

$message='title:{Налаштувати роутер}address:(Де бабайко каже надобраніч)sendVenue:[50.45093260638449, 30.52267174950622]';
$telegram->directPushMessage($chatid, $message);

Так, усі поля і формат дужок суворо обов'язкові.

А ще починаючи з Ubilling 1.0.5 можна встановлювати кастомну розмітку для ваших повідомлень. Наприклад використовувати HTML. Наприклад так:

 $message='Просто текст <b>жирний текст</b> <a href="http://ubilling.net.ua">Посилання на сайт</a> parseMode:{html}';
 $telegram->directPushMessage($chatid, $message);

Починаючи з Ubilling 1.0.9 також підтримується надсилання фоточок контактам бота. Формат надсилання фоточок наступний:

$message = 'sendPhoto:[http://piclod.com/i/1592634849/CEYG67MWEAEsvwa.jpeg]{Це опціональний заголовок}';
 
$telegram->sendMessage($chatId, $message);

Починаючи з Ubilling 1.1.4 ви можете використовувати для ваших ботів кастомні клавіатури. Для цього клавіатуру, зібрану з масиву за допомогою makeKeyboard, тупо відсилають за допомогою directPushMessage. Якось так:

        $buttonsArray[] = array('кнопка раз', 'кнопка поруч');
        $buttonsArray[] = array('кнопка внизу');
 
        $keyboard = $telegram->makeKeyboard($buttonsArray, false, true, true);
        $telegram->directPushMessage($chatid, 'Тут клавіатура вилізла!', $keyboard);

Примусово її вбити можна зі свого боку, використовуючи повідомлення, що містить текст вигляду “removeKeyboard:тут текст повідомлення”

 $telegram->directPushMessage($chatid, 'removeKeyboard:ой всё');
ubillingtelegram.txt · Востаннє змінено: 2023/06/16 17:49 повз skybetik