Инструменты пользователя

Инструменты сайта


Боковая панель

Разделы

Общее описание
История изменений
Рекомендации к обновлению
Планы на будущее
Известные проблемы
Онлайн демо
Видео
Помощь проекту
Люди

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);
ubillingtelegram.txt · Последние изменения: 2020/01/17 11:50 — nightfly