directman

<<< Back

преобразование html страниц в картинку и отправка в телеграмм

Поделюсь информацией о том, как я графики и виджеты научился отправлять в телеграм.

Задача: отправить информацию из шаблона в телегу.

Решение: создаем в домашних страницах нужный шаблон, например вставляем в него

<table width="100">
<tr><td>
[#module name="yandexweather" type="TODAYMINI" skin="1"  width="30" height="30" #]
 </td></tr>
Проверяем, что нужный вид доступен по адресу ссылки preview например
/page/39.html
Далее добавляем сценарий html2tlg:
КОД: ВЫДЕЛИТЬ ВСЁ

$url=$params['url'];
$w=$params['w'];
$h=$params['h'];
if ($url==""){
 $url='http://login:password@ip/page/39.html';

}
if ($w==""){$w=200;}
if ($h==""){$h=900;}

$fc=file_get_contents('http://api.rest7.com/v1/html_to_image.php?url=' . $url . '&format=png');
echo $fc;
$data = json_decode($fc);

if (@$data->success !== 1)
{
    die('Failed');
}
$image = file_get_contents($data->file);
$save_to="./cached/screen.png"; // куда сохранять
file_put_contents($save_to, $image);
//SaveFile($save_to, $result);

$image = new Imagick($save_to);
$image->cropImage($h,$w, 0,0);
$image->writeImage($save_to.'1');

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();
$telegram_module->sendImageToAll($save_to.'1');

Далее в телеграмм создаем команду:

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram();

$option = array(

 $telegram_module->buildInlineKeyboardButton($text="Погода","",  "Callback_html2tlg_pogoda","")

) ;

$count_row = 3;
$option = array_chunk($option, $count_row);
$keyb = $telegram_module->buildInlineKeyBoard($option);

$content = array('chat_id' => $chat_id, 'text' => "Датчики: ".$dir, 'reply_markup' => $keyb, 'parse_mode' => 'HTML');
$telegram_module->sendContent($content); 

И callback:

if (substr($callback,9,8) == 'html2tlg')
{
 if (substr($callback,18)=='pogoda') {$url='http://логин:пароль@вашипадрес/page/39.html';}

include_once(DIR_MODULES . 'telegram/telegram.class.php');
$telegram_module = new telegram(); 
$telegram_module->sendMessageToAll($url); 
runScriptSafe('html2tlg', array('url' =>substr($url), 'h'=>250)); 

}

Теперь виджет погоды может по запросу приходить в телегу!!!

Discuss (0) (1)

See also:
2018-07-15 Интеграция датчика Mi flora plant к системе УД MAJORDOMO
2018-06-13 Полезные команды для работы с git
2018-05-24 Полезные sql запросы
2018-05-23 Создание образа nand памяти orange pi plus2
2018-05-16 Команды для работы с базой данных напрямую
2018-04-13 Индикаторы о заряде батареек без использования картинок
2018-04-06 Установка и настройка python на windows для работы систем распознавания
2018-04-05 Распознавание лиц подходящих к двери людей с помощью ip камеры и открытие двери, если нейросеть признала своего
2018-04-04 Управление таймерами выключения света
2018-04-04 Управление RGB контроллером на базе ESP8266
2018-04-03 Увеличение разрешения снапшотов китайских камер на чипе hi3516c H264
2018-03-13 Использование колонки google home в качестве терминала Majordomo
2018-03-13 Установка и подключение rtl usb донгла для чтения датчиков температуры и кнопок 433 мгц
2018-03-13 Настройка брокера MQTT
2018-02-17 Проект "умная входная дверь"
2018-02-11 Отправка всех значений свойства объекта в телеграм
2017-12-21 получение адреса по GPS координатам
2017-12-21 получение / передача GPS координат сервису livegps.com
2017-12-21 чтение мгновенных данных U,P, I электросчетчика милур 104
2017-12-21 Получение координат с маяков и gsm сигнализаций starline-online.ru

Екатеринбург, Россия

На форуме: directman66