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

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


Сайдбар

Розділи

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

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.1664019551.txt.gz · Востаннє змінено: 2022/09/24 14:39 повз 127.0.0.1