
Пишем бота для обратной связи с сайта. Часть 3. Форматирование сообщений

В прошлой части мы рассмотрели отправку сообщения в группу с помощью Телеграмм-бота.
Сегодня мы рассмотрим форматирование отправляемого текста.
Форматируем с помощью HTML
Телеграмм поддерживает несколько тегов для форматирования текста:
Изменение стиля шрифта:
Жирный
<b>жирный</b>, <strong>жирный</strong>
Курсив
<i>курсив</i>, <em>курсив</em>
Подчеркивание
<u>подчеркнутый</u>, <ins> подчеркнутый </ins>
Перечеркивание
<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>
Добавим в файл send.php код:
$r = "<b>жирный</b>, <strong>жирный</strong>\n\n";
$r .= "<i>курсив</i>, <em>курсив</em>\n\n";
$r .= "<u>подчеркнутый</u>, <ins> подчеркнутый </ins>\n\n";
$r .= "<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>";
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Результат будет таким:
Обратите внимание, мы добавили:
'parse_mode' => "html"
Также вы можете вставить ссылку на сайт:
$r = 'Это <a href="http://blog.altuninvv.ru">ссылка</a> в середине строки';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Ссылка на пользователя или бота:
$r = 'Это ссылка на <a href="tg://user?id=1937500457">нашего бота</a>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Также существует возможность вставить пре форматированный текст.
Внутри строки
$r = 'Это <code> сообщение шрифтом похожим на Courier New</code> внутри строки.';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Блоком
$r = '<pre>Это сообщение-блок шрифтом похожим на Courier New </pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Так же вы можете отформатировать программный код на заданном языке программирования:
$r = '<pre><code class="language-php">';
$r .= "include('vendor/autoload.php');\n\n";
$r .= '$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";'."\n\n";
$r .= 'use Telegram\Bot\Api;'."\n";;
$r .= '$telegram = new Api($token);'."\n\n";;
$r .= '$result = $telegram->getWebhookUpdates();'."\n\n";;
$r .= '</code></pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
У нас получился такой вот файл send.php
<?php
include('vendor/autoload.php');
$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
use Telegram\Bot\Api;
$telegram = new Api($token);
$result = $telegram->getWebhookUpdates();
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$text = null;
$chat_id = -517371153;
$r = "<b>жирный</b>, <strong>жирный</strong>\n\n";
$r .= "<i>курсив</i>, <em>курсив</em>\n\n";
$r .= "<u>подчеркнутый</u>, <ins> подчеркнутый </ins>\n\n";
$r .= "<s>перечеркнутый</s>, <strike> перечеркнутый </strike>, <del> перечеркнутый </del>";
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
$r = 'Это <a href="http://blog.altuninvv.ru">ссылка</a> в середине строки';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
$r = 'Это ссылка на <a href="tg://user?id=1937500457">нашего бота</a>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
$r = 'Это <code> сообщение шрифтом похожим на Courier New</code> внутри строки.';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
$r = '<pre>Это сообщение-блок шрифтом похожим на Courier New </pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
$r = '<pre><code class="language-php">';
$r .= "include('vendor/autoload.php');\n\n";
$r .= '$token = "1234567890:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";'."\n\n";
$r .= 'use Telegram\Bot\Api;'."\n";;
$r .= '$telegram = new Api($token);'."\n\n";;
$r .= '$result = $telegram->getWebhookUpdates();'."\n\n";;
$r .= '</code></pre>';
$telegram->sendMessage(['chat_id' => $chat_id, 'text' => $r, 'parse_mode' => "html"]);
Заключение
Сегодня мы рассмотрели форматирование текста, отправляемого с помощью Телеграмм-бота, рассматривать Markdown я думаю смысла нет, HTML предоставляет нам весь необходимый функционал!
Было рассмотрено:
- форматирование начертания шрифта – жирный, курсив, подчеркивание, перечеркивание.
- создание ссылок на сайты и на ботов.
- форматирование с помощью <pre>
В следующей части мы рассмотрим отправку картинок с помощью бота.
Добавить комментарий